[VBA/Excel] Copie feuilles multiples vers 1
Eraser18
-
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.
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:
- [VBA/Excel] Copie feuilles multiples vers 1
- Liste déroulante excel - Guide
- Copie cachée - Guide
- Word et excel gratuit - Guide
- Copie écran samsung - Guide
- Copie disque dur - Guide
3 réponses
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 ...
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 ...