[VBA/Excel] Copie feuilles multiples vers 1

Fermé
Eraser18 - 9 janv. 2010 à 10:48
 Eraser18 - 9 janv. 2010 à 11:04
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 jeudi 26 juillet 2007 Statut Membre Dernière intervention 3 février 2013 196
9 janv. 2010 à 10:59
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
borni-moncef.design.officelive.com
0
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