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 :

VBA Récupérer certaines données des fichiers TXT en tableau EXCEL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2023
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 23
    Par défaut VBA Récupérer certaines données des fichiers TXT en tableau EXCEL
    Bonjour tout le monde ,

    Je suis nouveau dans ce forum et j'ai besoin de votre aide svp , je cherche à récupérer les données d'un fichier.txt en tableau Excel via un script macro pour pouvoir exploiter et analyser les données d'une façon facile. Ci joint mon fichier txt et le tableau que j'ai besoin.

    EJ.txtNom : exemple tableau excel.png
Affichages : 613
Taille : 15,0 Ko

    NB: mon répertoire a plusieurs fichier texte a exécuter à la fois .

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 562
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 562
    Par défaut
    Bonjour

    Cela fait plus de 10 ans que l'on utilise PowerQuery, intégré à Excel, pour ce faire

    Il suffit de stocker les fichiers dans un dossier spécifique

    Exemple avec le même fichier copié 2 fois dans le dossier: une liste des colonnes à récupérer, le chemin du dossier, le résultat
    Images attachées Images attachées  

  3. #3
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2023
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 23
    Par défaut
    Bonjour,

    Merci beaucoup Chris pour votre retour . vous pouvez SVP me communiquer la procédure détaillée pour pouvoir la suivre .

    J'ai vraiment besoin de votre aide pour avoir le même résultat que vous m'avez capturé .

    Merciii d'avance pour votre professionnalisme .

  4. #4
    Membre averti
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2023
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2023
    Messages : 23
    Par défaut
    Bonjour ,

    y'a t 'il du nouveau SVP?

    Merci d'avance pour votre aide .

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2013
    Messages
    122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 122
    Par défaut
    Et c'est sérieux sans fichier, ici, je crois, que l'on ne vous répondra pas

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour à toutes et à tous
    La réponse de 78chris est sans doute la meilleure (bonjour au passage ), j'ai tenté d'arriver au même résultat avec PowerQuery sans succès
    Le principe consiste à créer une liste avec les intitulés à rechercher, importer le fichier texte, faire la comparaison entre la liste et la colonne du fichier texte puis fractionner la colonne...bref un chemin à creuser mais une fois powerquery est maîtrisé je crois que c'est un outil formidable
    J'ai contacté cette adresse pour avoir une idée sur les fonctions de PQ...genre Text.Contains , les liste et autres
    Pour savoir comment faire comparaison entre une liste et une colonne j'ai contacté ce billet
    Si 78chris explique la solution , je serais preneur
    Pour un bricolage VBA et surtout que notre amie attend avec patience une réponse faite avec le principe que la structure des fichiers .text est la même :
    Importer fichier texte avec :
    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
    Sub ImportTxt()
    Dim FichierTxt
    FichierTxt = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If FichierTxt <> False Then
        With Worksheets("Feuil1")
            .UsedRange.ClearContents
            With .QueryTables.Add(Connection:="TEXT;" & FichierTxt & "", Destination:=.Range("A2"))
                .TextFileSemicolonDelimiter = True
                .Refresh BackgroundQuery:=False
                .Delete
            End With
        End With
    End If
    Worksheets("Feuil1").Range("B21").Value = Mid(Worksheets("Feuil1").Range("A21").Value, 27, 2)
    Worksheets("Feuil1").Range("C21").Value = Mid(Worksheets("Feuil1").Range("A21").Value, 30, 2)
    Worksheets("Feuil1").Range("D21").Value = Mid(Worksheets("Feuil1").Range("A21").Value, 33, 2)
    Worksheets("Feuil1").Range("E21").Value = Right(Worksheets("Feuil1").Range("A21").Value, 2)
    Worksheets("Feuil1").Range("B68").Value = Mid(Worksheets("Feuil1").Range("A68").Value, 27, 2)
    Worksheets("Feuil1").Range("C68").Value = Mid(Worksheets("Feuil1").Range("A68").Value, 30, 2)
    Worksheets("Feuil1").Range("D68").Value = Mid(Worksheets("Feuil1").Range("A68").Value, 33, 2)
    Worksheets("Feuil1").Range("E68").Value = Right(Worksheets("Feuil1").Range("A68").Value, 2)
    End Sub
    Remplir le tableau avec :
    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
    Sub remplirTblo()
    Dim F1 As Worksheet
    Dim F2 As Worksheet
    Dim ligF1 As Long
    Dim ligF2 As Long
    Application.ScreenUpdating = False
    Set F1 = Sheets("Feuil1")
    Set F2 = Sheets("Feuil2")
    ligF1 = F1.Cells(Rows.Count, 1).End(xlUp).Row
    For C = 1 To 10
    For L = 1 To ligF1
    If InStr(1, F1.Cells(L, 1), F2.Cells(1, C)) <> 0 Then
    ligF2 = F2.Cells(Rows.Count, C).End(xlUp).Row + 1
    F2.Cells(ligF2, C) = Left(F1.Cells(L, 1), 9)
    End If
    Next L
    Next C
    LigE = F2.Cells(Rows.Count, 5).End(xlUp).Row + 1
    F1.Range("B21:E21").Copy
    F2.Range("E" & LigE).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    LigE = F2.Cells(Rows.Count, 5).End(xlUp).Row + 1
    F1.Range("B68:E68").Copy
    F2.Range("E" & LigE).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
     
    Application.ScreenUpdating = True
    End Sub
    J'espère que ça aide à avancer
    Fichiers attachés Fichiers attachés

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/05/2015, 10h57
  2. Réponses: 9
    Dernier message: 22/04/2015, 20h39
  3. Code vba pour la suppression des lignes d'un tableau excel
    Par yosra_jemai dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/04/2013, 09h11
  4. [XL-2003] Données dans fichier .txt vers tableau en .xls
    Par Invité1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/08/2009, 19h30
  5. [CLI] Récupérer la version des fichiers à une date donnée
    Par jreeman dans le forum CVS
    Réponses: 1
    Dernier message: 27/02/2007, 11h35

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