Macro pour copier plusieurs onglets de plusieurs feuilles
Résolu/Fermé
cooljuly
Messages postés
40
Date d'inscription
mercredi 23 mars 2016
Statut
Membre
Dernière intervention
6 septembre 2016
-
1 avril 2016 à 15:32
cooljuly Messages postés 40 Date d'inscription mercredi 23 mars 2016 Statut Membre Dernière intervention 6 septembre 2016 - 11 avril 2016 à 14:13
cooljuly Messages postés 40 Date d'inscription mercredi 23 mars 2016 Statut Membre Dernière intervention 6 septembre 2016 - 11 avril 2016 à 14:13
A voir également:
- Macro pour copier plusieurs onglets de plusieurs feuilles
- Restaurer onglets chrome - Guide
- Copier une vidéo youtube - Guide
- Macro word - Guide
- Macro logiciel - Télécharger - Organisation
- Regrouper plusieurs feuilles excel en une seule - Guide
1 réponse
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 684
1 avril 2016 à 17:30
1 avril 2016 à 17:30
Bonjour,
Je te propose la modification ainsi :
Je te propose la modification ainsi :
Sub syntèseClasseurs() Dim ClasseurRecap As String, ClassImp As String, NomFeuilleImp As String, DerLigRecap As Long, DerLigImp As Long, Pays As Variant, Code As String Dim feu As Worksheet, wcr As Worksheet Rows("3:" & Cells(Rows.Count, 2).End(xlUp).Row + 1).Delete ' Détermination du classeur récapitulatif ClasseurRecap = ThisWorkbook.Name DerLigRecap = Cells(Rows.Count, 2).End(xlUp).Row Set wcr = ThisWorkbook.ActiveSheet ' Détermination DernièreLigne If DerLigRecap <= 2 Then DerLigRecap = 3 End If 'Set maitre = ActiveWorkbook Repertoire = ThisWorkbook.Path ClassImp = Dir(Repertoire & "\*.xls") ' premier fichier While ClassImp <> "" If ClassImp <> ThisWorkbook.Name Then Workbooks.Open Filename:=Repertoire & "\" & ClassImp For Each feu In ActiveWorkbook If feu.Range("A4").Value <> "" Then DerLigImp = feu.Cells(Rows.Count, 2).End(xlUp).Row Pays = Range("A1").Value Rows("4:" & DerLigImp).Copy wcr.Rows(DerLigRecap).Paste wcr.Range("AA" & DerLigRecap & ":AA" & DerLigRecap + DerLigImp - 4) = Pays DerLigRecap = DerLigRecap + DerLigImp - 3 End If Next feu Windows(ClassImp).Close False With Worksheets("Table").Range("A1:A" & Worksheets("Table").Cells(Rows.Count, 1).Row) Set c = .Find(Pays, LookIn:=xlValues, lookat:=xlWhole) If Not c Is Nothing Then ActiveSheet.Range("AB" & DerLigRecap & ":AB" & DerLigRecap + DerLigImp - 4).Value = c.Offset(0, 1) ActiveSheet.Range("AC" & DerLigRecap & ":AC" & DerLigRecap + DerLigImp - 4).Value = c.Offset(0, 2) End If End With End If ClassImp = Dir ' fichier suivant Wend Application.CutCopyMode = False Range(Cells(3, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 30)).Style = "Style 1" Columns("A:AD").AutoFit Rows("1:" & Cells(Rows.Count, 1).End(xlUp).Row).AutoFit For Each cell In Range("B3:B" & Cells(Rows.Count, 2).End(xlUp).Row) If cell = "TIT" Then Code = "G2 TIT" ElseIf cell = "VI" Then Code = "G3 VI" ElseIf cell = "CTR" Then Code = "G4 CTR" ElseIf cell = "ADL" Then Code = "G5 ADL" Else: Code = "" End If Range("AD" & cell.Row) = Code Next cell End Sub
11 avril 2016 à 14:13
désolée du retard de réponse mais je ne reçois pas les notifications.