piga25
XLDnaute Barbatruc
Bonjour le forum,
Je coince toujours sur le VBA, Je me ressouds à vous demander conseil car un clavier vient d'en faire les frais
Avec l'aide du forum, j'ai bien ma liste de feuille qui se met dans la listBox.
Si j'ai bien compris la manip sur l'exemple que j'ai pris, on doit avoir un array pour prendre en compte la liste des feuilles que l'on sélectionne dans cette listBox. C'est après que cela se complique, comment dire qu'il faut faire la copie de certaines plages et cela dans chaque feuille.
La méthode que je souhaite employer est :
0- Affichage des feuilles du fichier source
1- Selectionner les feuilles à copier
2- Mettre à blanc la feuille formulaire du fichier destination (macro: Nouvelle_rencontre)
3- Copier les données de certaines plage dans la première feuille sélectionnée dans cette listBox
5- Archiver la copie dans le fichier destination (macro: Archiver)
6- Remettre à blanc la feuille Formulaire du fichier destination (macro: Nouvelle_rencontre)
7- Boucler sur la seconde feuille, puis la suivante...
8- Fermer le fichier source
9- Sauvegarder le fichier destination
Edit: je sais cela n'est pas bien pour le clavier, le seul avantage maintenant j'en ai un neuf.
Je coince toujours sur le VBA, Je me ressouds à vous demander conseil car un clavier vient d'en faire les frais
Avec l'aide du forum, j'ai bien ma liste de feuille qui se met dans la listBox.
Si j'ai bien compris la manip sur l'exemple que j'ai pris, on doit avoir un array pour prendre en compte la liste des feuilles que l'on sélectionne dans cette listBox. C'est après que cela se complique, comment dire qu'il faut faire la copie de certaines plages et cela dans chaque feuille.
La méthode que je souhaite employer est :
0- Affichage des feuilles du fichier source
1- Selectionner les feuilles à copier
2- Mettre à blanc la feuille formulaire du fichier destination (macro: Nouvelle_rencontre)
3- Copier les données de certaines plage dans la première feuille sélectionnée dans cette listBox
5- Archiver la copie dans le fichier destination (macro: Archiver)
6- Remettre à blanc la feuille Formulaire du fichier destination (macro: Nouvelle_rencontre)
7- Boucler sur la seconde feuille, puis la suivante...
8- Fermer le fichier source
9- Sauvegarder le fichier destination
VB:
Private Sub CommandButton1_Click()
Dim wb1 As Workbook, wb2 As Workbook, Ws As Worksheet
Dim MyArray() As String
Dim i As Integer, X As Byte
Set wb1 = ThisWorkbook 'classeur destination
Set wb2 = ActiveWorkbook 'classeur source
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) = True Then
ReDim Preserve MyArray(X)
MyArray(X) = Me.ListBox1.List(i)
X = X + 1
End If
Next
'Au total 13 plages à copier
wb2.Ws(MyArray(X)).Range("V1:AB1").Copy
wb1.Ws(Formulaire).Range("V1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, transpose:=False
' Après la copie des 13 plages
'----------------------------------------------------
'lancer la macro: Archiver
'puis la macro: Nouvelle_rencontre
'----------------------------------------------------
'continuer la boucle sur les autres feuilles.
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
Edit: je sais cela n'est pas bien pour le clavier, le seul avantage maintenant j'en ai un neuf.
Pièces jointes
Dernière édition: