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
|