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é :
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 !
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
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 !