XL 2019 Extraction données avec filtre d'un fichier .txt sur Excel & créer nouveau fichier .txt

Kaeros

XLDnaute Nouveau
Bonjour à tous, je vous contacte aujourd'hui et vous écrit ce post car j'ai besoin de l'aide de professionnels dans le milieu et pouvant m'aider à comprendre et m'expliquer comme réaliser une mission technique qui m'a été confiée lors de mon stage en entreprise. Etant déjà doué dans le domaine en informatique et surtout en C et C++, le VBA me donne cependant quelques fils à retordre ahah :)

Voici ma mission avec les précision adéquates. J'ai besoin de traiter un fichier .txt sur Excel, donc de le transférer sur celui-ci. Cependant mon fichier texte comporte un tas de données que j'aimerai trier pour ainsi par la suite créer un nouveau fichier texte avec seulement quelques phrases détaillant le processus entier du fichier .txt de base et ainsi permettre à l'utilisateur d'y voir plus clair ahah !

Pour le moment j'ai réalisé ce code en dessous et permettant la lecture du fichier .txt sur Excel et le remplissage du tableau avec toutes les données de ce dernier en intégralité :

VB:
Option Explicit

Sub ChargerFichier()
Dim Nomfichierentree As String, S As String
    'Empèche les messages comme Pas sauver.. Le presse papier est rempli etc..
    Application.DisplayAlerts = False

    'Supprime le rafraichissement de l'écran pour accélérer le processus
    Application.ScreenUpdating = False

    'Attend le chemin complet et le nom du fichier txt.
    Nomfichierentree = Application.GetOpenFilename("Fichier Texte (*.txt), *.txt")
    If Nomfichierentree = "Faux" Then Exit Sub 'cliquer sur annuler

    'Ouvre le fichier texte en séparant les colonnes avec les espaces.
    Workbooks.OpenText Filename:= _
        Nomfichierentree, Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), Array(10 _
        , 1), Array(19, 1), Array(31, 1), Array(43, 1), Array(55, 1), Array(67, 1), Array(79, 1)), _
        TrailingMinusNumbers:=True

    'copies des données
    With ActiveWorkbook
        'Renvoi la dernière adresse absolue de la plage utilisée
        'Range("A1").SpecialCells(xlCellTypeLastCell).Address

        S = "A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address
        ActiveSheet.Range(S).Copy
        'Ferme le classeur texte mais les données sont dans le presse-papier
        .Close
    End With
    Range("A1").Select

    'Met les données du presse-papier sur la feuille active (celle avec le bouton)
    ActiveSheet.Paste

    'Rétabli les fonction de messages d'alertes.
    Application.DisplayAlerts = True
End Sub
Ce programme permet donc d'insérer les données du chier .txt ci-joint en tableau. Cependant j'aimerai classer les données pour chaque étapes en appliquant un filtre ou autre et ainsi tout classer et trier dans le tableau Excel et ainsi permettre de recréer un fichier .txt par la suite avec une macro, comportant juste quelques phrases simples et visibles. Il faudrait donc que la macro repérer des mots de texte ou données et en fonction des chiffres repérées dans le fichier .txt initial, elle écrive une phrase résumant ces données.

Par exemple si on prends : "stProgrammeGrp_gb.ParamBloc[1].VitessePt:=100.0" , faudrait que le fichier texte final comporte juste que le paramètre de la première méthode, a une vitesse de 100ms à cet instant là.

Merci infiniment à tout forme d'aide apportée et sachez que je vous en serez fortement reconnaissant ! Il me faudrait juste finir cette mission avant la fin de la semaine si possible, merci d'avance !
 

Pièces jointes

  • Test.xlsm
    35.5 KB · Affichages: 7
  • ex1.txt
    10.1 KB · Affichages: 3

Hasco

XLDnaute Barbatruc
bonjour,

Par power query vous pourrez facilement :
traiter, transformer, filtrer, Grouper, sélectionner, Dépivoter, permuter etc? vos données.
Avec à chaque étape un échantillon visible de l'étape en cours/

Dans le fichier joint je me suis contenté de charger le fichier texte et de faire les premières transformation dans la requête.

Le résultat est sur la feuille 2.

La requête se sert de la cellule A1, nommée 'Data_Source' pour trouver le fichier text. Actuellement il doit être dans le même répertoire que le fichier texte.

Eventuellement revalidez la formule de A1 pour mettre à jour la formule.

Pour voir la requête, onglet 'Données', bouton 'Requêtes et connexions'

cordialement

[Edition 14:59] rechargé le fichier avec une requête sur le filtre que vous demandiez.[/Edition]
 

Pièces jointes

  • Test.xlsm
    57.1 KB · Affichages: 7
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
299 841
Messages
1 979 470
Membres
206 744
dernier inscrit
Nicolas258