Copier plusieurs feuilles de plusieurs classeurs

nonoTT

XLDnaute Junior
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
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
 

Pièces jointes

  • Recap-site-juin.xlsx
    12.2 KB · Affichages: 35
  • synthese.xlsx
    9.8 KB · Affichages: 36
  • Recap-site-juillet.xlsx
    12.2 KB · Affichages: 30
  • synthese.xlsx
    9.8 KB · Affichages: 38
  • synthese.xlsx
    9.8 KB · Affichages: 36

nonoTT

XLDnaute Junior
Re : Copier plusieurs feuilles de plusieurs classeurs

Je viens de trouver ce qui n'allait pas dans la macro.
voir exemple ci joint
 

Pièces jointes

  • synthese sans mois(4).xlsm
    25.7 KB · Affichages: 26
  • synthese sans mois(4).xlsm
    25.7 KB · Affichages: 26
  • synthese sans mois(4).xlsm
    25.7 KB · Affichages: 22

job75

XLDnaute Barbatruc
Re : Copier plusieurs feuilles de plusieurs classeurs

Re,

Il semble bien que chez vous l'instruction .Close False crée une erreur !

Alors voyez le fichier (4) - sans mois affiché - et cette macro :

Code:
Sub CopierFichiers()
Dim t$, F As Worksheet, lig&, i As Byte, mois$, h&
Application.ScreenUpdating = False
On Error Resume Next 'si le fichier ou le tableau n'existent pas
t = ThisWorkbook.Path & "\Recap VO EEQ-" 'chemin à adapter éventuellement
Set F = ActiveSheet
lig = 2 '1ère ligne de copie
F.Range("A2:O" & Rows.Count).Delete xlUp 'RAZ
For i = 1 To 12 'n° des mois
  mois = Format(CDate(1 & "/" & i), "mmmm")
  With Workbooks.Open(t & mois & "-12.xlsx")
    .Sheets("Biochimie").AutoFilterMode = False 'désactive le filtre
    h = .Sheets("Biochimie").[A65536].End(xlUp).Row - 4
    .Sheets("Biochimie").[A5:O5].Resize(h).Copy F.Cells(lig, 1)
    .Close False
  End With
  lig = lig + h
Next
F.Range("A2:O" & h).Sort [A2], Header:=xlNo 'tri sur colonne A
End Sub
Elle se termine par un tri sur la colonne A.

A+
 

Pièces jointes

  • synthese sans mois(4).xlsm
    19.4 KB · Affichages: 21
  • synthese sans mois(4).xlsm
    19.4 KB · Affichages: 22
  • synthese sans mois(4).xlsm
    19.4 KB · Affichages: 22

job75

XLDnaute Barbatruc
Re : Copier plusieurs feuilles de plusieurs classeurs

Re,

Non le fichier (4) ne va pas du tout :mad:

En fait il faut remettre la variable h à 0 avant son calcul dans la boucle.

Utilisez les fichiers (5) joints.

Il y a un tri alphabétique sur la colonne A du fichier "sans mois".

A+
 

Pièces jointes

  • synthese sans mois(5).xlsm
    19.8 KB · Affichages: 17
  • synthese avec mois(5).xlsm
    20.2 KB · Affichages: 16
Dernière édition: