Note: The other languages of the website are Google-translated. Back to English

Comment importer rapidement par lots plusieurs fichiers csv / texte / xml dans Excel?

Dans Excel, vous avez peut-être lié pour enregistrer un classeur en tant que fichier csv, fichier texte ou fichier xml, mais avez-vous déjà essayé 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 lots.

Importer plusieurs fichiers texte d'un dossier dans chaque feuille de calcul d'un classeur avec VBA

Importez plusieurs fichiers csv d'un dossier dans une seule feuille avec VBA

Importez plusieurs fichiers xml d'un dossier dans une seule feuille avec VBA

Importez ou combinez plusieurs fichiers xml / csv dans une feuille ou un classeur avec Kutools for Excel bonne idée3

Exportez chaque feuille au format csv / texte / pdf dans un dossier avec Kutools for Excelbonne idée3


Pour importer des fichiers texte d'un dossier vers un classeur, vous pouvez utiliser ci-dessous VBA pour le gérer rapidement.

1. Activez un classeur vierge et appuyez sur Alt + F11 clés pour ouvrir Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Moduleet collez le VBA dans le Module fenêtre.

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. presse F5 clé ou cours pour exécuter le VBA et sélectionnez un dossier à partir duquel vous souhaitez importer les fichiers texte dans la boîte de dialogue contextuelle. Voir la capture d'écran:

doc importer plusieurs textes csv xml 1

4. Et cliquez sur OKet chaque fichier texte du dossier sélectionné a été importé dans une feuille de calcul du classeur actif. Voir la capture d'écran:

doc importer plusieurs textes csv xml 2doc importer plusieurs textes csv xml 3

Combinez facilement plusieurs feuilles / classeurs en une seule feuille ou classeur

Combiner plusieurs feuilles ou classeurs dans une feuille ou un classeur peut être édifiant dans Excel, mais avec le Combiner fonction dans Kutools for Excel, vous pouvez combiner fusionner des dizaines de feuilles / classeurs dans une feuille ou un classeur, vous pouvez également consolider les feuilles en une seule en plusieurs clics.  Cliquez pour les fonctionnalités complètes 30 jours d'essai gratuit !
combiner des feuilles
 
Kutools for Excel: avec plus de 300 compléments Excel pratiques, essai gratuit sans limitation dans 30 jour.

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 et appuyez sur Alt + F11 clés pour ouvrir Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Module, et collez sous VBA dans le nouveau Module fenêtre.

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. presse F5 touche ou cliquez cours pour exécuter le VBA, et une boîte de dialogue apparaît pour sélectionner un dossier à partir duquel vous souhaitez importer tous les fichiers csv. Voir la capture d'écran:

doc importer plusieurs textes csv xml 4

4. Cliquez OK, et une boîte de dialogue apparaît pour vous rappeler si effacer le contenu de la feuille de calcul active avant l'importation, ici je clique Oui. Voir la capture d'écran:

doc importer plusieurs textes csv xml 5

Après avoir cliqué Oui, tous les fichiers csv du dossier sélectionné sont importés dans la feuille actuelle et placent les données de la colonne A vers la droite. Voir la capture d'écran:

doc importer plusieurs textes csv xml 6doc importer plusieurs textes csv xml 7

Pointe: Si vous souhaitez placer des fichiers csv horizontalement dans une feuille de calcul, vous pouvez utiliser ci-dessous VBA.

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 

doc importer plusieurs textes csv xml 8


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 dans laquelle placer les données importées et appuyez sur Alt + F11 clés pour activer Microsoft Visual Basic pour applications fenêtre.

2. Cliquez insérer > Module, collez le code VBA dans le Module fenêtre.

VBA: importez 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 cours bouton ou F5 clé pour exécuter le VBA et sélectionnez un dossier dans la boîte de dialogue contextuelle, voir capture d'écran:

doc importer plusieurs textes csv xml 9

4. Cliquez OKet tous les fichiers XML du dossier sélectionné sont importés dans la feuille active.


Si vous n'êtes pas familier avec VBA, ne vous inquiétez pas, je vous présente ici un outil pratique - Kutools pour Excel pour vous. Avec son puissant Combiner utilitaire, vous pouvez rapidement combiner plusieurs fichiers xml ou csv dans un classeur ou une feuille Excel.

Kutools pour Excel, avec plus de 300 fonctions pratiques, rend vos travaux plus faciles. 

Après l'installation de Kutools for Excel, procédez comme suit:(Téléchargez gratuitement Kutools pour Excel maintenant!)

1. Activez Excel et cliquez sur Kutools Plus > Combiner. Voir la capture d'écran :
doc combiner 1

2. Et dans le étape 1 de la combinaison boîte de dialogue, choisissez une option de séparation selon vos besoins. Voir la capture d'écran:
doc combiner 2

3. Cliquez Suivant aller à étape 2 de la moissonneuse-batteusecliquez Ajouter une détection de fuite de données pour ajouter des fichiers de divers dossiers ou fichiers d'un dossier à Classeur liste, et vous pouvez également spécifier les feuilles que vous souhaitez combiner à partir de Feuille liste de la section de droite. Voir la capture d'écran:
doc kutools combiner des feuilles 3

4. Cliquez Suivant à la dernière étape de Combiner, et vous pouvez spécifier les options de combinaison.
doc kutools combiner des feuilles 4

5. Cliquez Récapitulatif, une boîte de dialogue apparaît pour vous rappeler de sélectionner un emplacement pour enregistrer le nouveau résultat combiné. Voir la capture d'écran:
doc combiner 5

6. Cliquez Enregistrer. Toutes les feuilles d'ajout ont été combinées en une nouvelle feuille unique.
doc combiner 6

Pointe: Avec Combiner, vous pouvez également combiner plusieurs des fichiers CSV former plusieurs dossiers ou un dossier dans une feuille ou un classeur.


Si vous souhaitez exporter chaque feuille sous forme de fichier csv / texte / pdf vers un dossier, Kutools pour Excel's Classeur fractionné l'utilité peut vous rendre service.

Après installation gratuite Kutools for Excel, procédez comme suit:

1. Activez le classeur pour lequel vous souhaitez exporter ses feuilles de calcul, puis cliquez sur Kutools Plus > Classeur > Classeur fractionné. Voir la capture d'écran:

doc importer plusieurs textes csv xml 10

2. dans le Classeur fractionné , vous pouvez vérifier les noms de feuilles que vous devez exporter, par défaut toutes les feuilles sont cochées et cocher Spécifiez le format d'enregistrement et sélectionnez le format de fichier que vous souhaitez enregistrer dans la liste déroulante ci-dessous. Voir la capture d'écran:

doc importer plusieurs textes csv xml 11

3. Cliquez Divisé et sélectionnez un dossier pour enregistrer les fichiers fractionnés dans le Rechercher un dossier dialogue, voir capture d'écran:

doc importer plusieurs textes csv xml 12

4. Cliquez OK, maintenant toutes les feuilles cochées sont exportées en tant que nouveau format de fichier dans le dossier sélectionné.


Articles relatifs:


Les meilleurs outils de productivité de bureau

Kutools for Excel résout la plupart de vos problèmes et augmente votre productivité de 80%

  • Réutilisation: Insérer rapidement formules complexes, graphiques et tout ce que vous avez utilisé auparavant; Crypter les cellules avec mot de passe; Créer une liste de diffusion et envoyer des e-mails ...
  • Barre Super Formula (modifiez facilement plusieurs lignes de texte et de formule); Disposition de lecture (lire et modifier facilement un grand nombre de cellules); Coller dans la plage filtréeplus
  • Fusionner les cellules / lignes / colonnes sans perdre de données; Contenu des cellules divisées; Combiner des lignes / colonnes en double... Empêcher les cellules en double; Comparer les gammesplus
  • Sélectionnez Dupliquer ou Unique Lignes; Sélectionnez les lignes vides (toutes les cellules sont vides); Super Find et Fuzzy Find dans de nombreux classeurs; Sélection aléatoire ...
  • Copie exacte Plusieurs cellules sans changer la référence de formule; Créer automatiquement des références à plusieurs feuilles; Insérer des puces, Cases à cocher et plus encore ...
  • Extrait du texte, Ajouter du texte, Supprimer par position, Supprimer l'espace; Créer et imprimer des sous-totaux de pagination; Conversion entre le contenu et les commentaires des cellulesplus
  • Super filtre (enregistrer et appliquer des schémas de filtrage à d'autres feuilles); Tri avancé par mois / semaine / jour, fréquence et plus; Filtre spécial par gras, italique ...
  • Combiner des classeurs et des feuilles de travail; Fusionner les tableaux en fonction des colonnes clés; Diviser les données en plusieurs feuilles; Conversion par lots xls, xlsx et PDFplus
  • Plus de 300 fonctionnalités puissantes. Prend en charge Office / Excel 2007-2021 et 365. Prend en charge toutes les langues. Déploiement facile dans votre entreprise ou organisation. Fonctionnalités complètes Essai gratuit de 30 jours. Garantie de remboursement de 60 jours.
onglet kte 201905

Office Tab apporte une interface à onglets à Office et simplifie considérablement votre travail

  • Activer l'édition 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é de 50% et réduit des centaines de clics de souris chaque jour!
bas de cabine
Commentaires (36)
Pas encore de notes. Soyez le premier à évaluer!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, merci beaucoup pour ces exemples de code ! Le premier (VBA : Importer tous les fichiers texte d'un dossier dans un classeur) est presque exactement ce dont j'ai besoin. Je voudrais cependant sélectionner les fichiers à importer et ne pas importer automatiquement tous les fichiers texte d'un dossier donné. Je souhaite également que le contenu existant de mes feuilles cibles soit écrasé par le contenu des fichiers texte. (Avec le code ci-dessus, le contenu existant est décalé vers la droite au lieu d'être remplacé.) Comment puis-je procéder ? Merci d'avance!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'aimerais comprendre le code VBA pour "Importer plusieurs fichiers Xml d'un dossier dans une seule feuille avec VBA". 1. Pourquoi faut-il 2 cahiers au lieu d'un ? 1. Le chargement de nombreux fichiers XML dans Excel prend un certain temps. Existe-t-il donc un code plus efficace ? Parce que je me rends compte que lorsque votre code a été exécuté, de nombreux classeurs VBA sont créés, ce qui a provoqué le ralentissement. J'apprécierais vraiment si vous pouviez m'aider à comprendre!
Ce commentaire a été minimisé par le modérateur sur le site
Désolé, je n'ai pas compris votre première question, et à propos de la seconde, le code le plus efficace, je ne l'ai pas trouvé, si vous le savez, laissez-moi une note, merci.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'aimerais comprendre le code VBA pour "Importer plusieurs fichiers .txt d'un dossier vers une seule feuille avec VBA" par la prochaine ligne disponible (pas horizontale). S'il vous plaît aider, urgent
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, si vous souhaitez importer tous les fichiers txt d'un dossier vers une seule feuille, vous pouvez utiliser le code vba ci-dessus pour importer d'abord des fichiers txt dans un classeur, puis appliquer Kutools for Excel's Combine Worksheets fonctionnalité pour combiner toutes les feuilles d'un classeur à une feuille, puis les fichiers txt dans une feuille. J'espère que cela vous aide.
Ce commentaire a été minimisé par le modérateur sur le site
Le problème avec cela est que la commande VBA ni Kutools ne permettent d'importer les fichiers csv avec le formatage du code de caractère. La précharge est occidentale. J'ai besoin d'importer tous les fichiers csv au format unicode-8
Ce commentaire a été minimisé par le modérateur sur le site
le code de conversion à partir de fichiers txt n'a pas fonctionné pour moi.
Ce commentaire a été minimisé par le modérateur sur le site
Désolé cet article ne fonctionne pas pour vous. Pourriez-vous décrire votre problème ? Que se passe-t-il lors de l'exécution du code ? Et quel système vous travaillez?
Ce commentaire a été minimisé par le modérateur sur le site
Salut! Le code "Importer des fichiers csv d'un dossier dans une feuille de calcul" fonctionne pour moi ! Mais ce code ne fonctionne pas pour un fichier .txt vide. Existe-t-il un moyen de conserver également les fichiers vides ?
Ce commentaire a été minimisé par le modérateur sur le site
Désolé, je ne sais pas pourquoi j'ai besoin d'importer un fichier txt.file vide ~ Insérez simplement des lignes vides pour séparer le contenu.
Ce commentaire a été minimisé par le modérateur sur le site
Mike : "le code de conversion à partir de fichiers txt n'a pas fonctionné pour moi."

J'ai eu le même problème. La macro se trompe si vous avez plus de fichiers txt à ouvrir que de feuilles de calcul dans votre classeur (la valeur par défaut est 3).
Je l'ai corrigé en ajoutant ce qui suit juste avant la sortie de la boucle afin que la macro crée une nouvelle feuille après le reste
ActiveWorkbook.Sheets.Add After :=Feuilles de calcul(Feuilles de calcul.Nombre)
Ce commentaire a été minimisé par le modérateur sur le site
Chad, Cela a parfaitement fonctionné pour moi pour importer plusieurs fichiers texte. Merci.

Savez-vous s'il existe un moyen d'extraire les noms de fichiers ? Je veux que les noms de fichiers texte soient copiés dans chaque onglet de feuille Excel.
Ce commentaire a été minimisé par le modérateur sur le site
Totalement incroyable! J'ai essayé d'ouvrir tous les fichiers csv dans une seule feuille de calcul et cela a fonctionné à merveille. Merci beaucoup, vraiment !
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, j'ai essayé d'exécuter le code pour .xml et cela ne semble pas fonctionner car j'ai reçu le message "pas de fichiers xml". Comment résoudre ce problème ?
Ce commentaire a été minimisé par le modérateur sur le site
Il affichera un message "pas de fichiers xml" alors que votre dossier sélectionné ne contient pas les fichiers xml. Vous pouvez sélectionner le bon dossier contenant les fichiers xml dans la boîte de dialogue contextuelle après avoir exécuté le code pour les importer dans la feuille active.
Ce commentaire a été minimisé par le modérateur sur le site
Ça a marché! Merci
Ce commentaire a été minimisé par le modérateur sur le site
bonjour, saya mau tanya kalo impor fichier txt ke satu feuille gimana ya?
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, rendy, voudriez-vous importer tous les txt sur une feuille ou chaque txt sur chaque feuille ?
Ce commentaire a été minimisé par le modérateur sur le site
j'ai du code pour importer des txt dans des feuilles chaque txt dans chaque feuille, mais je veux que chaque txt soit importé avec son nom dans la feuille, je veux dire renommer chaque feuille importée avec le nom du txt le fichier de code attaché .. je veux éditer ceci fichier pour ajouter du code pour renommer les feuilles avec le nom txts ... merci.
Ce commentaire a été minimisé par le modérateur sur le site
j'ai du code pour importer des txt dans des feuilles chaque txt dans chaque feuille, mais je veux que chaque txt soit importé avec son nom dans la feuille, je veux dire renommer chaque feuille importée avec le nom du txt le fichier de code attaché .. merci
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, Ramy, zahran, vous pouvez essayer le code ci-dessous qui peut importer les fichiers texte et renommer le nom de la feuille en nom de fichier texte.
Sous LoadPipeDelimitedFiles()
'Mettre à jour parExtendoffice20180925
Estomper xStrPath en tant que chaîne
Estomper xFileDialog en tant que FileDialog
Estomper xFile en tant que chaîne
Dim xCount As Long
Dim xWS en tant que feuille de travail

En cas d'erreur GoTo ErrHandler
Définir xFileDialog = Application. FileDialog (msoFileDialogFolderPicker)
xFileDialog.AllowMultiSelect=Faux
xFileDialog.title = "Sélectionnez un dossier [Kutools pour Excel]"
Si xFileDialog.Show = -1 Alors
xStrPath = xFileDialog.SelectedItems(1)
Si fin
Si xStrPath = "" alors quitter le sous-marin
Application.ScreenUpdating = Faux
xFile = Dir(xStrPath & "\*.txt")
Faire tant que xFile <> ""
xCompte = xCompte + 1
Définir xWS = Sheets(xCount)
xWS.Select
xWS.Name = "TEXTE " & Gauche(xFile, Len(xFile) - 4)
Avec ActiveSheet.QueryTables.Add(Connexion :="TEXTE ;" _
& xStrPath & "\" & xFile, Destination:=Range("A1"))
.Name = "a" & xCount
.FieldNames = Vrai
.RowNumbers = Faux
.FillAdjacentFormulas = Faux
.PreserveFormatting = Vrai
.RefreshOnFileOpen = Faux
.RefreshStyle = xlInsertDeleteCells
.SavePassword = Faux
.SaveData = Vrai
.AdjustColumnWidth = Vrai
.RefreshPeriod = 0
.TextFilePromptOnRefresh = Faux
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = Faux
.TextFileTabDelimiter = Faux
.TextFileSemicolonDelimiter = Faux
.TextFileCommaDelimiter = Faux
.TextFileSpaceDelimiter = Faux
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Tableau(1, 1, 1)
.TextFileTrailingMinusNumbers = Vrai
.Refresh BackgroundQuery :=Faux
xFichier = Dir
Terminer par
boucle
Application.ScreenUpdating = True
Exit Sub
ErrHandler :
MsgBox "pas de fichiers txt", , "Kutools pour Excel"
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Salut! J'ai utilisé le code pour fusionner plusieurs fichiers XML en un seul, mais malheureusement, les colonnes ont été foirées. Les 5 fichiers fusionnés avaient tous le même format. Est-ce qu'il y a un moyen de réparer ceci? Je me demandais également s'il existait un moyen de se débarrasser des en-têtes dupliqués lors de la fusion des fichiers. Merci!
Ce commentaire a été minimisé par le modérateur sur le site
Merci. Ce site a été d'une grande aide. J'ai un problème que je n'arrive pas à résoudre. J'essaie d'importer plusieurs fichiers csv dans des feuilles Excel séparées dans Excel et de renommer chaque feuille d'après le nom de fichier du fichier csv. Je sais que cela a été couvert ci-dessous pour un fichier txt mais je travaille avec des fichiers csv. Merci d'avance.
Ce commentaire a été minimisé par le modérateur sur le site
Salut - J'utilise l'importation de tous les fichiers csv dans un fichier répertorié ci-dessus "Importer plusieurs fichiers Csv d'un dossier dans une seule feuille avec VBA" - j'aimerais définir le dossier à partir duquel il collecte les données sans avoir à choisir manuellement ce. Cela peut-il être fait? merci - SW.
Ce commentaire a été minimisé par le modérateur sur le site
Salut, Scott W, j'ai trouvé un code VBA qui peut vous aider.
Option explicite

Sous ImportCSVsWithReference()
'Auteur : Jerry Beaucaire
Date : 10/16/2010
'Résumé : importez tous les fichiers CSV d'un dossier dans une seule feuille
' ajouter un champ dans la colonne A listant les noms de fichiers CSV

Dim wbCSV en tant que classeur
Dim wsMstr As Worksheet : Set wsMstr = ThisWorkbook.Sheets("Sheet1")
Dim fPath As String: fPath = " C:\Users\DT168\Desktop\New folder\" 'chemin vers les fichiers CSV, inclure le \ final
Dim fCSV en tant que chaîne

Si MsgBox("Effacer la feuille existante avant d'importer ?", vbOuiNon, "Effacer ?") _
= vbYes Alors wsMstr.UsedRange.Clear

Application.ScreenUpdating = False 'accélérer la macro

fCSV = Dir(fPath & "*.csv") 'démarre la liste des fichiers CSV

Faire tant que Len(fCSV) > 0
'ouvrir un fichier CSV
Définir wbCSV = Workbooks.Open(fPath & fCSV)
'insérer la col A et ajouter le nom CSV
Colonnes(1).Insérer xlShiftToRight
Columns(1).SpecialCells(xlBlanks).Value = ActiveSheet.Name
'copier la date dans la feuille principale et fermer le fichier source
ActiveSheet.UsedRange.Copy wsMstr.Range("A" & Rows.Count).End(xlUp).Offset(1)
wbCSV.Fermer Faux
'prêt prochain CSV
fCSV = Dir
boucle

Application.ScreenUpdating = True
End Sub
Ce commentaire a été minimisé par le modérateur sur le site
Comment éliminer l'en-tête en double et la colonne de nom de fichier CSV. S'il vous plaît, aidez-moi .... J'ai parcouru plusieurs articles, mais malheureusement, tous donnent le même résultat.
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour - J'ai utilisé vos codes VBA pour extraire des données de plusieurs fichiers CSV vers un fichier Excel (le code sur cette page) et convertir des fichiers CSV en fichiers Excel (celui-ci : https://www.extendoffice.com/documents/excel/4615-excel-batch-convert-csv-to-xls-xlsx.html), avec d'excellents résultats. Ils m'ont permis de gagner beaucoup de temps.

Cependant, je remarque un problème commun avec ces deux types de codes. Pour clarifier, mon système est configuré pour utiliser les normes européennes pour les dates, tandis que certains des fichiers CSV que j'ai reçus pour mon travail contiennent des dates dans les normes américaines. Le premier problème est que lorsque j'extrait ou convertis des données d'un fichier CSV contenant des dates au format américain, toutes ces dates sont inversées (correspondant aux normes européennes utilisées par mon système). C'est génial, mais cela m'a également causé des problèmes car je ne savais pas que les codes inverseraient les dates pour moi, alors j'ai continué et j'ai refait la même chose. Le deuxième problème est que pour les fichiers CSV qui contiennent déjà des dates au même format que celui utilisé par mon système (normes UE), seules les dates ambiguës sont inversées (soit 04/05/2019 - 05/04/2019), tandis que ceux qui sont trop évidents, restent inchangés (c'est-à-dire 30/04/2019).

Ce que je voudrais que les codes fassent, c'est exactement la même chose qu'ils sont montrés ici, seulement qu'ils doivent copier et coller les données (en particulier les dates) dans les formats exacts utilisés dans les fichiers originaux. Cela permettrait d'éviter d'éventuelles confusions et erreurs. J'aimerais apprendre VBA pour pouvoir un jour écrire mes propres codes, mais pour l'instant, je ne suis même pas capable de modifier des parties des codes existants pour répondre à mes besoins. Donc, si vous pouvez aider, dites-moi s'il vous plaît où je dois mettre les codes modifiés (que vous venez avec) aux codes existants. J'apprécie tous les commentaires et le soutien que je peux obtenir. Merci à tous!
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour Marshall, dans la méthode Workbooks.Open, ajoutez l'option Local:=True.

à
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Ce commentaire a été minimisé par le modérateur sur le site
Merci beaucoup Robert. Désolé de ne pas avoir pu vous répondre plus tôt. Je n'ai reçu aucune notification jusqu'à présent. Je vais essayer cela et je reviendrai vers vous plus tard pour vous dire si cela fonctionne.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Robert,
C'est encore moi. Il m'a fallu un certain temps pour avoir le temps de déterminer à quelle partie du code la partie "Local:True" devait être ajoutée. Le résultat s'est avéré excellent car les dates ne sont plus inversées. Merci!
Pour ceux qui ont le même problème, changez simplement cette ligne :
Définir xWb = Workbooks.OpenXML(xStrPath & "\" & xFile)

Pour ça:
Set xWb = Workbooks.Open(xStrPath & "\" & xFile, Local:=True)
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour, existe-t-il un moyen d'importer plusieurs fichiers CSV avec un point-virgule comme séparateur ? Merci!
PS Bel article !
Ce commentaire a été minimisé par le modérateur sur le site
Bonjour l'équipe

J'utilise le code pour importer plusieurs fichiers XML dans une seule feuille avec VBA, mais le problème auquel je suis confronté est lorsque le nombre de lignes atteint environ 650000, alors il ne traite pas le reste des fichiers xml dans le dossier et donne une erreur qu'aucun fichier xml . Besoin de votre soutien pour augmenter ce nombre.
Ce commentaire a été minimisé par le modérateur sur le site
Salut Experts

J'utilise le code ci-dessus pour importer plusieurs fichiers xml dans 1 feuille de calcul à l'aide de VBA, mais le problème auquel je suis confronté est que lorsque le nombre de lignes atteint 650000 XNUMX dans une feuille de calcul, ce code ne traite pas le reste des fichiers xml dans le dossier. Cela donne une erreur "no files.xml". Besoin de votre aimable soutien
Ce commentaire a été minimisé par le modérateur sur le site
BonjourLes instructions pour importer plusieurs xmls dans un onglet d'un document Excel fonctionnent mais je me demandais comment l'amener à aligner les colonnes. Mes fichiers XML n'ont pas tous les mêmes balises. Ils sont configurés de telle sorte que si le xml n'avait pas de données pour certains en-têtes (balises), l'en-tête manque dans ce xml. Existe-t-il un moyen d'importer les XML afin que les mêmes en-têtes de chaque XML et les données associées tombent dans la même colonne d'Excel?
Il n'y a pas encore de commentaires postés ici
TÉLÉCHARGER PLUS
Laisser vos commentaires
Publier en tant qu'invité
×
Évaluez cet article:
0   Personnages
Emplacements suggérés

Nous suivre

Copyright © 2009 - www.extendoffice.com. | Tous les droits sont réservés. Alimenté par ExtendOffice. | | Plan du site
Microsoft et le logo Office sont des marques commerciales ou des marques déposées de Microsoft Corporation aux États-Unis et / ou dans d'autres pays.
Protégé par Sectigo SSL