Re : fusionner plusieurs classeurs (avec plusieurs feuilles) dans un classeur / VBA
Bonjour
Je viens de trouver la solution comme suit:
Sub consolide()
Dim rep As String, classeurMaitre As Workbook, wk As Workbook
Dim compteur As Integer, k As Integer, nf As String
Call sup
Application.EnableEvents = False
Application.DisplayAlerts = False
rep = ActiveWorkbook.Path & "\"
Set classeurMaitre = ActiveWorkbook
compteur = 1
nf = Dir(rep & "*.xls")
While nf <> ""
If nf <> classeurMaitre.Name Then
Workbooks.Open Filename:=rep & nf
Set wk = ActiveWorkbook
For k = 1 To Sheets.Count
classeurMaitre.Sheets.Add After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count)
classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Mapage" & compteur
wk.Sheets(k).UsedRange.Copy Destination:=classeurMaitre.Sheets("Mapage" & compteur).[A1]
compteur = compteur + 1
Next k
Workbooks(nf).Close False
End If
nf = Dir
Wend
Application.EnableEvents = True
Application.DisplayAlerts = True
End Sub
Sub sup()
Dim i As Integer
Application.DisplayAlerts = False
For i = Sheets.Count To 1 Step -1
If Sheets(i).Name <> "Accueil" Then
Sheets(i).Delete
End If
Next i
Application.DisplayAlerts = True
End Sub
Mais reste 2 Pb
- Cela va jusqu'à 50 onglet en boucle
- Comment conserver le nom de l'onglet d'origine ?
Vinz