Fusionner 180 fichiers excel à plusieurs feuil
Résolu/Fermé
LP
-
28 mai 2014 à 17:34
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 29 mai 2014 à 17:52
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 29 mai 2014 à 17:52
A voir également:
- Fusionner 180 fichiers excel à plusieurs feuil
- Fusionner plusieurs fichiers excel - Guide
- Liste déroulante excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Aller à la ligne excel - Guide
- Renommer plusieurs fichiers - Guide
3 réponses
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
28 mai 2014 à 18:34
28 mai 2014 à 18:34
Bonjour,
Voici la correction testée que je te propose :
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
Voici la correction testée que je te propose :
Option Explicit--
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
Toujours zen
La perfection est atteinte, non pas lorsqu'il n'y a plus rien à ajouter, mais lorsqu'il n'y a plus rien à retirer. Antoine de Saint-Exupéry
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 711
29 mai 2014 à 17:52
29 mai 2014 à 17:52
Bonjour,
Tu remplaces ceci :
Tu remplaces ceci :
wk.Sheets(k).UsedRange.Copy Destination:=classeurMaitre.Sheets("Mapage" & compteur).[A1]par
wk.Sheets(k).UsedRange.Copyet cela devrait le faire.
classeurMaitre.Sheets("Mapage" & compteur).[A1].PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False