[VBA/Excel] Copie feuilles multiples vers 1

Eraser18 -  
 Eraser18 -
Bonjour,

Voici un bref exposé de mon problème : je dois effectuer une opération systématique et j'aurais besoin de créer une macro pour le faire. Il s'agit d'attribuer une formule à une cellule sachant que les cellule utilisées par la formule sont sur d'autres feuilles.
Par exemple, dans la ligne 14, colonne 17, je veut placer la formule "='P3'!N4+ 'P3'!O4", puis, dans la ligne 19 (de 5 en 5), colonne 17, je veux placer la formule "='P4'!N4+ 'P4'!O4" et ainsi de suite jusqu'à la ligne 299 (au total, 60 incréments)
Voila ou j'en suis dans mon programme :

Private Sub CommandButton1_Click()
Dim x, i As Integer
x = 1
For i = 4 To 299 Step 5
Feuil2.Cells(i, 11).Formula = "='P[x]'!N3+ 'P[X]'!O3"
x = x + 1
Next i
End Sub


Évidemment cela ne marche pas, il ne comprends pas le P[X] comme un caractère variable (P1, P3, P4, ... P60)
Ma question est donc la suivante : Quelle syntaxe faut-il adopter pour faire varier la page de référence de la formule de manière automatique.

NB : la syntaxe de la commande "simple" est : Feuil2.Cells(i, 17).Formula = "='P52'!N4+ 'P52'!O4" .
Cette syntaxe fonctionne mais évidemment elle conduit à une colonne qui fait uniquement référence à P52

Merci d'avance pour vos réponses.
A voir également:

3 réponses

just1xpa2 Messages postés 1603 Date d'inscription   Statut Membre Dernière intervention   196
 
bonjour essaie en modifiant ta formule , je ne sais pas si en vba c'est idendique quand mode formule , sur le tableur
pour selectionner une plage de cellule il te faut le sigle $ devanr la colonne $ devant la ligne de depart , et aussi pour la cellule finale de la plage
Feuil2.Cells(i, 17).Formula = "='$P$52'!$N4+ '$P$52'!$O$4"
tu me diras si cela fonctionne

Quand la base est saine, ceux qui interviennent derrière toi sont heureux 
à l'inverse, ils te maudissent ...
1
momo
 
borni-moncef.design.officelive.com
0
Eraser18
 
Hélas, la mise en place de $ ne change rien. Au contraire d'ailleurs, il me semblait que mettre en place des $ figeait la variable qui précède le dollar sur sa valeur
0