IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Consolidation et conversion en boucle fichier Txt dans Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    assistant contrôle de gestion
    Inscrit en
    Octobre 2013
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : assistant contrôle de gestion
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 208
    Par défaut Consolidation et conversion en boucle fichier Txt dans Excel
    Désolé, je me suis trompé de sous forum.

    Bonjour à tous

    Je souhaites via un code VBA aller sélectionner des fichiers .txt et qu'ils soient convertis et consolidés dans un même onglets sachant que le séparateur des fichier .txt est ";"

    Je n'arrive pas à trouver comment intergrer ce code permettant de convertir mes fichiers Txt avec un separateur ";" au reste du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Workbooks.OpenText Filename:=Fichiers(i), Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, Semicolon:=True
    Voici le reste du code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Sub Importer()
        Dim dlDest As Long, dlSource As Long, dlgR As Long, i As Long
        Dim Chemin As String
        Dim fichier As Variant, Fichiers As Variant
        Dim Wb As Workbook
     
        Application.ScreenUpdating = False
     
    'efface les données de l'onglet DATA de la colonne A a la colonne AF sauf la premiere ligne
    With ThisWorkbook.Sheets("Data")
        dlgR = .Range("A" & Rows.Count).End(xlUp).Row
        .Range("A2:AF" & dlgR).ClearContents
    End With
     
        'Ouvre exploreur et permet aux utilisateur de selectionner les fichiers Excel a consolider
        ChDir ThisWorkbook.Path
        Fichiers = Application.GetOpenFilename("Text Files (*.txt),*.txt", MultiSelect:=True)
        'Si aucun fichier n'est selectionné, on arrete le code
        If Not IsArray(Fichiers) Then Exit Sub
        'Pour chaque fichier selectionné
     
       For i = 1 To UBound(Fichiers)
     
            dlDest = ThisWorkbook.Sheets("Data").Cells(Rows.Count, "A").End(xlUp).Row + 1 '1ere ligne vide
            'On definit Wb qui ouvre le fichier selectionne
        '    Set Wb = Workbooks.Open(Fichiers(i))
     
            Set Wb = Workbooks.Open(Fichiers(i))
                      Workbooks.OpenText Filename:=Fichiers(i), Origin:=xlWindows, _
            StartRow:=1, DataType:=xlDelimited, Semicolon:=True
     
     
            ', Origin:=xlWindows, _
            'StartRow:=1, DataType:=xlDelimited, Semicolon:=True
            'Feuille à copier
           With Wb.ActiveSheet.Name
                'dernière ligne du fichier source
                dlSource = .Cells(.Rows.Count, "A").End(xlUp).Row
                'Copier vers la 1ere ligne non vide de la feuille Data du fichier de consolidation
                .Range("A2:AF" & dlSource).Copy ThisWorkbook.Sheets("Data").Range("A" & dlDest)
          End With
            'On ferme le fichier source ouvert
            Wb.Close False
        Next
     
        Application.ScreenUpdating = True
     
    End Sub
    J'ai utilisé ce code mais il y a peut être d'autres solutions, je débute dans le VBA.

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Dans ton second code, l'instruction qui ouvre le fichier est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Fichiers = Application.GetOpenFilename("Text Files (*.txt),*.txt", MultiSelect:=True)
    C'est donc à ce niveau que doit être implanté ton OpenText.
    Mais il faudra plus qu'un simple copier/coller pour le mettre en place.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur VBA
    Inscrit en
    Avril 2017
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur VBA
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Par défaut
    Je pense que vous n'avez pas regardé assez loin dans le code Menhir, l'ouverture du fichier texte est bien présente.


    En revanche, je n'ai pas compris quelle est la question vu que le code en question est bien dans la boucle qui parcourt la liste des fichiers sélectionnés.


    Pour faire marcher le code enlever "Set Wb = Workbooks.Open(Fichiers(i))" qui ne sert plus avec le opentext et faire ensuite set wb = activeworkbooks.



    Juste après "With Wb.ActiveSheet.Name", c'est vraiment comme ça que vous avez trouvé le code que vous utilisez ? Je vous conseille de revenir au code de départ si vous l'avez modifié et de ne modifier que ce qui concerne le opentext.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36

Discussions similaires

  1. fichier txt dans excel
    Par madjb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 15h33
  2. Ouverture fichier txt dans excel date 10/01/2007 au lieu de 01/10/2007
    Par megapacman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/10/2007, 15h14
  3. importer un fichier txt dans excel
    Par rm34000 dans le forum Excel
    Réponses: 2
    Dernier message: 03/09/2007, 10h12
  4. Réponses: 2
    Dernier message: 26/01/2007, 15h58
  5. [VBA-Excel] Ouvrir un lot de fichier txt dans Excel
    Par Trollakuir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 30/06/2006, 11h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo