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

  1. #1
    Membre du Club
    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
    Points : 68
    Points
    68
    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 sénior 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
    Points : 32 866
    Points
    32 866
    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.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

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

    Informations forums :
    Inscription : Avril 2017
    Messages : 122
    Points : 194
    Points
    194
    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.
    Je ne teste quasi jamais le code que je propose. il s'agit juste d'indication sur comment je m'y prendrais, comment faire, des lignes d'intention.
    Il y a donc souvent des erreurs, le déboggage existe pour cela.

  4. #4
    Inactif  

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

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

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

Discussions similaires

  1. fichier txt dans excel
    Par madjb dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/04/2008, 14h33
  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, 14h14
  3. importer un fichier txt dans excel
    Par rm34000 dans le forum Excel
    Réponses: 2
    Dernier message: 03/09/2007, 09h12
  4. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  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, 10h02

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