Imports de fichiers txt dans un classeur, j'ai trouvé la solution, mais

Bonjour,
j'ai exactement le même besoin que l'utilisateur qui avait posté cette question
https://forum.excel-pratique.com/excel/importer-plusieurs-fichiers-txt-dans-differents-onglets-90436

et je me trouve avec exactement le même problème (les onglets sont créés dans un nouveau classeur et non pas dans celui où je lance la macro). Par contre, en ce qui me concerne la modification proposée par un autre utilisateur en réponse (supprimer un passage, mais j'ai peut-être mal compris) ne fonctionne pas...

Si quelqu'un veut bien m'aiguiller... (désolé, je n'ai pas trouvé comment poster à la suite de la discussion en question).

Merci d'avance,

Adrien

et lorsque je supprime la partie mentionnée dans l'encadré,
l’exécution donne un problème de compilation "Boucle sans Do"
et dans le code le titre de la macro est en jaune,
et la commande Loop est surlignée / sélectionnée en bleu...

Sub CombineTextFiles()
     Dim xFilesToOpen, i As Integer, xScreen As Boolean

     xFilesToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Sélectionner vos fichiers", , True)
     If TypeName(xFilesToOpen) = "Boolean" Then
          MsgBox "No files were selected", , "Excel"
     Else
          xScreen = Application.ScreenUpdating
          Application.ScreenUpdating = False
          For i = 1 To UBound(xFilesToOpen)
               Application.StatusBar = i & "  " & xFilesToOpen(i)
               With Workbooks.Open(xFilesToOpen(i))
                    With .Sheets(1)
                         With .Columns("A:A")
                              .TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                                             Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="|"
                         End With
                         .Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
                    End With
               End With
          Next
          Application.ScreenUpdating = xScreen
     End If
End Sub

Génial,
et merci Bart !!

Je m'en vais essayer de comprendre maintenant... (j'apprends le Visual Basic depuis minutes environ 😂)

avec commentaire

Sub CombineTextFiles()
     Dim xFilesToOpen, i As Integer, xScreen As Boolean

     xFilesToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Sélectionner vos fichiers", , True)     'sélectionner les TXT voulus
     If TypeName(xFilesToOpen) = "Boolean" Then     'rien choissi ou annuler
          MsgBox "No files were selected", , "Excel"
     Else                                    '1 ou plusieurs fichiers
          xScreen = Application.ScreenUpdating     'mémoriser état "screenupdating maintenant
          Application.ScreenUpdating = False     'bloquer "screenupdating"
          For i = 1 To UBound(xFilesToOpen)  'boucler les fichiers TXT
               Application.StatusBar = i & "  " & xFilesToOpen(i)     'montrer le progrès sur le statusbar
               With Workbooks.Open(xFilesToOpen(i))     'ouvrir ce fichier dans Excel
                    With .Sheets(1)          'la première feuille (et la seule)
                         'charactère pour séparer en colonnes est le "|"
                         .Columns("A:A").TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, _
                                                       Tab:=False, Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar:="|"
                         .UsedRange.EntireColumn.AutoFit     'ajuster largeur colonnes
                         .Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)     'déplacer comme nouvelle dernière feuille dans fichier actuel
                    End With
               End With
          Next
          Application.ScreenUpdating = xScreen
     End If
End Sub
Rechercher des sujets similaires à "imports fichiers txt classeur trouve solution"