VBA - copier une formule en decalant sa colonne
Résolu
mod77
Messages postés
1320
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Dans un classeur j'ai copié une feuil1 avec un tableau, vers une feuil2.
Je souhaite que les formules du tableau de feuil2, qui sont que des copies de cellule d'une autre feuille, soient décalées d'une colonne.
Je lutte en vain pour trouver comment faire.
La formule du tableau est de type "feuil0!A10" et je souhaite la transformer en "feuil0!B10" sur feuil2.
J'obtiens ma formule à partir de ceci:
Les colonnes ne sont pas toujours les mêmes.
J'ai essayé :
mais erreur: "objet attendu"
Pouvez-vous m'aider svp?
Dans un classeur j'ai copié une feuil1 avec un tableau, vers une feuil2.
Je souhaite que les formules du tableau de feuil2, qui sont que des copies de cellule d'une autre feuille, soient décalées d'une colonne.
Je lutte en vain pour trouver comment faire.
La formule du tableau est de type "feuil0!A10" et je souhaite la transformer en "feuil0!B10" sur feuil2.
J'obtiens ma formule à partir de ceci:
Sheets(feuil1).Range("C15").FormulaLocal
Les colonnes ne sont pas toujours les mêmes.
J'ai essayé :
Sheets(feuil2).Range("C15").FormulaLocal=Sheets(feuil1).Range("C15").FormulaLocal.offset(0,1)
mais erreur: "objet attendu"
Pouvez-vous m'aider svp?
Configuration: Windows / Firefox 72.0
A voir également:
- VBA - copier une formule en decalant sa colonne
- Formule moyenne excel plusieurs colonnes - Guide
- Déplacer une colonne excel - Guide
- Comment trier une colonne sur excel - Guide
- Formule si ou - Guide
- Colonne word - Guide
2 réponses
J'ai trouvé ceci et ça marche
quelle galère...
formule = Sheets(feuil1).Range("C15").FormulaLocal
part1 = Split(formule, "!")(1) 'A10
part2 = Chr$(Asc(Mid(part1, Len(part1) - 2, 1)) + 1) & Right(part1, 2) 'I Incremente colonne
ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal = "feuil1!" & part2
quelle galère...
yg_be
Messages postés
23437
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 587
bonjour, je suggère ceci:
ou, dans ton cas:
Dim tableau As Range, rg As Range
Set tableau = ThisWorkbook.Sheets("Sheet1").[A1:B5]
For Each rg In tableau
rg.FormulaLocal = "=" + Split(Range(rg.FormulaLocal).Offset(0, 1).AddressLocal(, , , True), "]")(1)
Next rg
ou, dans ton cas:
ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal = "=" _
+ Split(Range(ActiveWorkbook.Sheets(feuil2).Range("C15").FormulaLocal).Offset(0, 1).AddressLocal(, , , True), "]")(1)