Si vous gérez plusieurs classeurs Excel avec des données similaires , vous pouvez fusionner tous dans un seul classeur sommaire. Cela laisse les classeurs d'origine intact et vous donne un seul classeur à utiliser comme un aperçu . Excel facilite le processus à travers son add-on Visual Basic. Le code peut paraître long et intimidant, mais c'est un travail de copier- coller assez simple qui ne nécessite pas réellement connaissance ou expérience du codage . Instructions
1
mettre tous les classeurs que vous souhaitez fusionner dans un dossier sur votre ordinateur .
2
Ouvrez un nouveau classeur dans Excel.
Hôtels 3
Appuyez sur Alt + F11. Cela va ouvrir l'éditeur Visual Basic .
4
Sélectionnez "Module " dans le menu "Insertion" .
5
Copiez et collez le code VB suivant dans la fenêtre de texte : Photos
MergeAllWorkbooks sub ()
myPath Dim As String , FilesInPath comme corde
MyFiles dim ( ) As String
SourceRcount As long, fNum Comme long
mybook As Workbook , BaseWks comme feuille de
sourceRange As Range, destrange Comme Range
rnum As long, cALCMODE As Long
MyPath = " PATHHERE "
droite ( MyPath , 1) <> "\\" Alors
MyPath = MyPath & "\\"
End If
< p> FilesInPath = Dir ( MyPath & " * . xl *")
Si FilesInPath = "" Then
MsgBox " Aucun résultat "
Exit Sub
End If
fNum = 0
faire pendant FilesInPath <> ""
fNum = fNum + 1
ReDim Preserve MyFiles ( 1 Pour fNum )
MyFiles ( fNum ) = FilesInPath
FilesInPath = Dir ( )
boucle
Demande
cALCMODE = . Calcul
. calcul = xlCalculationManual
. ScreenUpdating = False
. EnableEvents = False
End With
Set BaseWks = classeurs . Ajouter ( xlWBATWorksheet ) . Feuilles (1) Photos
rnum = 1
Si fNum > 0 Then
fNum = LBound ( MyFiles ) à LimiteSup ( MyFiles )
Set mybook = Nothing
On Error Resume Next
Set mybook = Workbooks.Open ( MyPath & MyFiles ( fNum ) )
On Error GoTo 0
If Not mybook n'est rien Puis
On Error Resume Next
mybook.Worksheets (1)
Set sourceRange = Range ("A1 : . C1 »)
End With
Si Err.Number > 0 Then
Err.Clear
Set sourceRange = Nothing Else
Photos
Si sourceRange.Columns.Count > = BaseWks.Columns.Count Puis
Set sourceRange = Nothing
End If End If
On Error GoTo 0
If Not sourceRange n'est rien Puis
SourceRcount = sourceRange.Rows.Count
Si rnum + SourceRcount > = BaseWks.Rows.Count puis
MsgBox " Il n'y a pas assez de lignes dans la feuille cible. "
BaseWks.Columns.AutoFit
mybook.Close savechanges : = False
GoTo ExitTheSub
Else
sourceRange
BaseWks.Cells ( rnum , "A") . _
Resize ( . Rows.Count ) . Value = MyFiles ( fNum )
End With
Set destrange = BaseWks.Range ("B" & rnum ) < br >
sourceRange
Set destrange = destrange . _
Resize ( . Rows.Count . Columns.Count )
End With
destrange.Value = sourceRange.Value
rnum = rnum + SourceRcount
End If End If
mybook.Close savechanges : = False End If
Suivant fNum
< p> BaseWks.Columns.AutoFit
End If
ExitTheSub : .
Demande
ScreenUpdating = True
EnableEvents = . vrai
. Calcul = cALCMODE
End With End Sub
6
Remplacer " PATHHERE " sur la ligne 8 avec le chemin d'accès au dossier avec tous les fichiers de classeur . Utilisez le formulaire . " C: \\ Mes Documents \\ Folder1 \\ Dossier2 ... "
7
Appuyez sur Alt + Q pour créer le classeur sommaire