Bonjour le forum
Je recherche à copier une feuille de chaque classeur situé dans un même dossier.
J'ai la macro suivante récupérer sur le net qui permet de sélectionner les feuilles à copier à partir d'un classeur ouvert dans un classeur synthèse déjà ouvert.
Comment faire par macro pour :
- sélectionner le classeur excel à traiter à l'aide du mois : les classeurs ont un nom de la forme Recap-site-mois.xlsx
- sélectionner dans chacun des classeurs la feuille désirée par exemple "Biochimie"
- Sélectionner , copier le tableau de chaque feuille biochimie et le coller dans la feuille synthèse les uns à la suite des autres
Un exemple valant mieux que de longues explications, vous trouverez ci joint :
- la macro
- 2 exemples de fichier de départ
- 1 exemple de fichier synthèse voulu
Merci à vous de m'aider
la macro
Je recherche à copier une feuille de chaque classeur situé dans un même dossier.
J'ai la macro suivante récupérer sur le net qui permet de sélectionner les feuilles à copier à partir d'un classeur ouvert dans un classeur synthèse déjà ouvert.
Comment faire par macro pour :
- sélectionner le classeur excel à traiter à l'aide du mois : les classeurs ont un nom de la forme Recap-site-mois.xlsx
- sélectionner dans chacun des classeurs la feuille désirée par exemple "Biochimie"
- Sélectionner , copier le tableau de chaque feuille biochimie et le coller dans la feuille synthèse les uns à la suite des autres
Un exemple valant mieux que de longues explications, vous trouverez ci joint :
- la macro
- 2 exemples de fichier de départ
- 1 exemple de fichier synthèse voulu
Merci à vous de m'aider
la macro
Code:
Sub CopieDeFeuillesChoisies()
Dim CL1 As Workbook
Dim CL2 As Workbook
Dim LaFeuille As Worksheet
Dim i As Byte, ListeACopier '(as variant)
Dim Ok As Boolean
Set CL1 = Workbooks("Recap VO EEQ-avril-12.xlsx")
Set CL2 = Workbooks("synthese EEQ.xlsx")
'ListeACopier = Array("Feuil1", "Feuil3", "Feuil7")
For Each LaFeuille In CL1.Worksheets
If MsgBox("Copier la feuille " & LaFeuille.Name, vbYesNo) = vbYes Then _
LaFeuille.Copy After:=CL2.Worksheets(CL2.Worksheets.Count)
Next
' If Ok Then LaFeuille.Copy After:=CL2.Worksheets(CL2.Worksheets.Count)
' Ok = False
' Next
Set CL1 = Nothing
Set CL2 = Nothing
End Sub