Comment importer rapidement plusieurs fichiers csv/texte/xml par lot dans Excel ?
Dans Excel, vous avez peut-être essayé d'enregistrer un classeur au format csv, fichier texte ou fichier xml, mais avez-vous déjà tenté d'importer plusieurs fichiers csv/texte/xml d'un dossier dans un classeur ou une feuille de calcul ? Dans cet article, je présente quelques méthodes pour les importer rapidement par lot.
Importer plusieurs fichiers texte d'un dossier dans chaque feuille de calcul d'un classeur avec VBA
Pour importer des fichiers texte d'un dossier dans un classeur, vous pouvez utiliser le code VBA ci-dessous pour gérer cela rapidement.
1. Ouvrez un classeur vierge, puis appuyez sur Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insérer > Module, et collez le code VBA dans la fenêtre Module.
VBA : Importer tous les fichiers texte d'un dossier dans un classeur
Sub LoadPipeDelimitedFiles()
'UpdatebyKutoolsforExcel20151214
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\*.txt")
Do While xFile <> ""
xCount = xCount + 1
Sheets(xCount).Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" & xCount
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
xFile = Dir
End With
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files txt", , "Kutools for Excel"
End Sub
3. Appuyez sur la touche F5 ou cliquez sur le bouton Exécuter pour exécuter le VBA, puis sélectionnez un dossier à partir duquel vous souhaitez importer les fichiers texte dans la boîte de dialogue qui s'affiche. Voir capture d'écran :
4. Cliquez sur OK, et chaque fichier texte du dossier sélectionné a été importé dans une feuille de calcul du classeur actif. Voir capture d'écran :



Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Importer plusieurs fichiers csv d'un dossier dans une seule feuille avec VBA
Pour importer tous les fichiers csv d'un dossier dans une seule feuille, vous pouvez utiliser le code VBA ci-dessous.
1. Activez une feuille de calcul vierge, puis appuyez sur Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insérer > Module, et collez le code VBA ci-dessous dans la nouvelle fenêtre Module.
VBA : Importer des fichiers csv d'un dossier dans une feuille de calcul
Sub ImportCSVsWithReference()
'UpdatebyKutoolsforExcel20151214
Dim xSht As Worksheet
Dim xWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Set xSht = ThisWorkbook.ActiveSheet
If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then xSht.UsedRange.Clear
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.csv")
Do While xFile <> ""
Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
Columns(1).Insert xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
ActiveSheet.UsedRange.Copy xSht.Range("A" & Rows.Count).End(xlUp).Offset(1)
xWb.Close False
xFile = Dir
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files csv", , "Kutools for Excel"
End Sub
3. Appuyez sur la touche F5 ou cliquez sur le bouton Exécuter pour exécuter le VBA, et une boîte de dialogue s'affiche pour sélectionner un dossier à partir duquel vous souhaitez importer tous les fichiers csv. Voir capture d'écran :
4. Cliquez sur OK, et une boîte de dialogue s'affiche pour vous rappeler si vous souhaitez effacer le contenu de la feuille active avant l'importation ; ici, je clique sur Oui. Voir capture d'écran :
Après avoir cliqué sur Oui, tous les fichiers csv du dossier sélectionné sont importés dans la feuille active, et les données sont placées à partir de la colonne A vers la droite. Voir capture d'écran :


Astuce : Si vous souhaitez placer les fichiers csv horizontalement dans une feuille de calcul, vous pouvez utiliser le code VBA ci-dessous.
Sub ImportCSVsWithReferenceI()
'UpdatebyKutoolsforExcel20151214
Dim xSht As Worksheet
Dim xWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Set xSht = ThisWorkbook.ActiveSheet
If MsgBox("Clear the existing sheet before importing?", vbYesNo, "Kutools for Excel") = vbYes Then
xSht.UsedRange.Clear
xCount = 1
Else
xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
End If
Application.ScreenUpdating = False
xFile = Dir(xStrPath & "\" & "*.csv")
Do While xFile <> ""
Set xWb = Workbooks.Open(xStrPath & "\" & xFile)
Rows(1).Insert xlShiftDown
Range("A1") = ActiveSheet.Name
ActiveSheet.UsedRange.Copy xSht.Cells(1, xCount)
xWb.Close False
xFile = Dir
xCount = xSht.Cells(3, Columns.Count).End(xlToLeft).Column + 1
Loop
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox "no files csv", , "Kutools for Excel"
End Sub
Importer plusieurs fichiers xml d'un dossier dans une seule feuille avec VBA
Si vous souhaitez importer tous les fichiers XML d'un dossier dans une seule feuille, vous pouvez utiliser le code VBA ci-dessous.
1. Sélectionnez une feuille vierge où vous souhaitez importer les données, puis appuyez sur Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Cliquez sur Insérer > Module, collez le code VBA dans la fenêtre Module.
VBA : Importer des fichiers XML d'un dossier dans une feuille de calcul.
Sub From_XML_To_XL()
'UpdatebyKutoolsforExcel20151214
Dim xWb As Workbook
Dim xSWb As Workbook
Dim xStrPath As String
Dim xFileDialog As FileDialog
Dim xFile As String
Dim xCount As Long
On Error GoTo ErrHandler
Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect = False
xFileDialog.Title = "Select a folder [Kutools for Excel]"
If xFileDialog.Show = -1 Then
xStrPath = xFileDialog.SelectedItems(1)
End If
If xStrPath = "" Then Exit Sub
Application.ScreenUpdating = False
Set xSWb = ThisWorkbook
xCount = 1
xFile = Dir(xStrPath & "\*.xml")
Do While xFile <> ""
Set xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)
xWb.Sheets(1).UsedRange.Copy xSWb.Sheets(1).Cells(xCount, 1)
xWb.Close False
xCount = xSWb.Sheets(1).UsedRange.Rows.Count + 2
xFile = Dir()
Loop
Application.ScreenUpdating = True
xSWb.Save
Exit Sub
ErrHandler:
MsgBox "no files xml", , "Kutools for Excel"
End Sub
3. Cliquez sur le bouton Exécuter ou appuyez sur la touche F5 pour exécuter le VBA, puis sélectionnez un dossier dans la boîte de dialogue qui s'affiche, voir capture d'écran :
4. Cliquez sur OK, et tous les fichiers XML du dossier sélectionné sont importés dans la feuille active.
Importer ou combiner plusieurs fichiers xml/csv dans une feuille ou un classeur avec Kutools pour Excel
Si vous ne maîtrisez pas bien VBA, ne vous inquiétez pas, voici un outil pratique – Kutools pour Excel. Avec son utilitaire Combine puissant, vous pouvez rapidement combiner plusieurs fichiers xml ou csv en un seul classeur ou une seule feuille Excel.
Après avoir installé Kutools pour Excel, veuillez procéder comme suit :(Téléchargement gratuit de Kutools pour Excel maintenant!)
1. Activez Excel, puis cliquez sur Kutools Plus > Combiner. Voir capture d'écran :
2. Et dans l' étape 1 de Combiner boîte de dialogue, choisissez une option de séparation selon vos besoins. Voir capture d'écran :
3. Cliquez sur Suivant pour accéder à l'étape 2 de Combiner, cliquez sur Ajouter pour ajouter des fichiers provenant de divers dossiers ou de fichiers d'un seul dossier à la liste Classeur et vous pouvez également spécifier les feuilles que vous souhaitez combiner depuis la liste Feuille de calcul de la section de droite. Voir capture d'écran :
4. Cliquez sur Suivant pour accéder à la dernière étape de Combiner, et vous pouvez spécifier les options de combinaison.
5. Cliquez sur Terminer, une boîte de dialogue s'affiche pour vous rappeler de sélectionner un emplacement pour enregistrer le nouveau résultat combiné. Voir capture d'écran :
6. Cliquez sur Enregistrer. Toutes les feuilles ajoutées ont été combinées dans une nouvelle feuille unique.
Astuce : Avec Combiner, vous pouvez également combiner plusieurs fichiers CSV provenant de plusieurs dossiers ou d'un seul dossier en une seule feuille ou un seul classeur.
Exporter chaque feuille en tant que csv/texte/pdf vers un dossier avec Kutools pour Excel
Si vous souhaitez exporter chaque feuille en tant que fichier csv/texte/pdf vers un dossier, l'utilitaire Split Workbook de Kutools pour Excel peut vous aider.
Après avoir téléchargé et installé gratuitement Kutools pour Excel, veuillez procéder comme suit :
1. Activez le classeur que vous souhaitez exporter ses feuilles de calcul, puis cliquez sur Kutools Plus > Classeur > Séparer le classeur. Voir capture d'écran :
2. Dans la boîte de dialogue Séparer le classeur, vous pouvez cocher les noms des feuilles que vous devez exporter ; par défaut, toutes les feuilles sont cochées, et cochez Spécifier le format de sauvegarde et sélectionnez le format de fichier dans la liste déroulante ci-dessous. Voir capture d'écran :
3. Cliquez sur Séparer et sélectionnez un dossier pour enregistrer les fichiers séparés dans la boîte de dialogue Parcourir le dossier, voir capture d'écran :
4. Cliquez sur OK, maintenant toutes les feuilles cochées sont exportées dans le nouveau format de fichier dans le dossier sélectionné.
Articles connexes :
- Comment convertir un lien hypertexte en texte brut dans Excel ?
- Comment convertir un nombre décimal en binaire/octal/hexadécimal ou vice versa dans Excel ?
- Comment insérer un taux de change en direct dans Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !