Importation de plusieur fichier texte sur excel

Bonjour,

Grâce aux autres discussions j'ai appris qu'il été possible d'importer un fichier texte sous excel.
J'ai donc crée une macro qui va chercher un fichier texte dans un document, le copie, et le met en forme sous excel.
Cependant j'ai une centaine de fichier texte a aller chercher dans ce document et à remettre sous excel.
J'aimerai savoir comment faire afin que dans ma macro je puisse selectionner tous les fichiers texte du document lorsque j'indique le chemin.

Actuellement mon chemin c'est,

N'\atelier\divers\machines\nomdufichiertexte.text

Vous l'aurez compris jaimerai quil selectionne tous les fichiers texte du document machine.

Merci

8 réponses

  1. Quelqu'un peut m'aider ? SVP
    0
    1. Bonjour,

      Il est vrai que j'ai un petit problème de confidentialité, comment je fais pour le mettre en message personnel ?
      Comme ça je t'envoi mon fichier excel ainsi que quelques fichiers texte que je dois importer.

      Merci
      (Désolé pour mon temps de réponse mais j'ai du faire face au virus du "gendarme")
      0
      1. J'ai un probleme de boucle je crois

        Sub texte()

        Dim fich as string
        ChDir "N:\Atelier\divers\machine\"
        fich = Dir("*.txt")
        While fich <> ""

        With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;N:\Atelier\divers\machine\fich" _
        , Destination:=Range("$A$1"))
        .Name = "fich"
        .FieldNames = Tru
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = True
        .RefreshOnFileOpen = False
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .TextFilePromptOnRefresh = False
        .TextFilePlatform = 1252
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileConsecutiveDelimiter = False
        .TextFileTabDelimiter = True
        .TextFileSemicolonDelimiter = False
        .TextFileCommaDelimiter = True
        .TextFileSpaceDelimiter = False
        .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False

        End With

        fich = Dir
        Wend

        End Sub

        dans .name= je dois mettre quoi ?
        0
        1. Contributeur
          .name est le nom que tu donnes au tableau résultant: tu peux mettre le nom que tu veux, évite quand m^me les accents espaces et signes de ponctuatuion, et par prudence 1° caractère: une lettre.

          mais j'utilise jamais Query mais une autre méthode : ADO, je te passe un code dès que j'ai un instant
          0
        2. merci d'avance
          0
        3. Contributeur
          Bonjour,

          Il faudrait que tu m'envoie un de tes fichiers texte pour faire des essais
          Si tu crains pour la confidentialité, mets le en message personnel

          au fait, où mets tu les importations des Txt: tu demandes la cellule A1 mais tu me parles d'une 100taine de fichiers...
          0
        4. bonjour, je te prépar le fichier pour demain, je n'y ai pas accès aujourd'hui.
          merci
          0
      2. je prends note je vais réessayer ce matin, merci
        0
        1. Contributeur
          j'ai un problème de chemin alors qu'il est bon

          NON
          "N:\Atelier\divers\machine\ tubeuse.txt" est un nom complet de fichier...
          un chemin (path) s'écrirait ainsi
          "N:\Atelier\divers\machine\"

          d'autre part la variable fich renverra cette syntaxe tonfichier.txt
          donc
          fich.txt est faux

          0
          1. merci michel de ton aide mais malheureusement apres plusieurs tentative ca ne fonctionne pas !

            voici le code :

            Sub texte()

            Dim fich as string
            ChDir "N:\Atelier\divers\machine\ tubeuse.txt"
            fich = Dir("*.txt")
            While fich <> ""

            With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;N:\Atelier\divers\machine\ fich.txt" _
            , Destination:=Range("$A$1"))
            .Name = "fich"
            .FieldNames = Tru
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 1252
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = True
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False

            End With

            fich = Dir
            Wend

            End Sub

            j'ai un problème de chemin alors qu'il est bon
            0
            1. Pourrais tu expliquer d'avantage s'il te plait,
              Que signifie chdirton chemin par exemple ?
              0
              1. Contributeur
                !!!
                Chdir "N'\atelier\divers\machines\"

                en général les fichiers texte ont un suffixe "txt" et bon "text"; si c'est quand même le cas tu modifies le code

                entre while fich<>"" et fich=dir
                tu insères ta macro
                il faut donc garder en mémoire la variable "fich" et la déclarer en t^te de ton module avant toute macro
                dim fich as string
                ou
                private fich as string

                ou alors tu utilises une macro paramétrée style
                sub macro(fich_txt)
                dans laquelle fich_txt prend la valeur de fich

                et tu remplaces le nom du fichier texte de ta macro de départ(par ex toto.txt), le fichier que tu traitais) par la variable fich_txt
                0
              2. désolé mais je n'avais plus accès à internet !!
                0
            2. Contributeur
              Bonjour
              chdir tonchemin
              fich = Dir("*.txt")
              While fich <> ""

              Ta macro qui importe le fichier txt (fich est le nom du fichier texte en cours, à mettre en variable Private avant les macros)

              fich = Dir
              Wend
              0