Code VBA pour transférer données txt
Bonjour,
Je suis technicien en électronique et novice dans le domaine de la programmation, j’ai quelques difficultés à faire un programme en VB pour transférer un fichier TXT. Je met en PJ mes fichier sources txt et xls.
En effet, j’ai commencé un bout de programme qui ouvre le fichier txt et le copie dans une feuille transfert de mon fichier xls et via des liens, remet tous dans des tableaux pour en faire un graphique.
Mais lorsque je copie le fichier dans la feuille transfert, après une mise en forme de la feuille « transfert » en ajoutant une colonne, en supprimant des guillemets etc…. et bien les liens de mes tableaux changent complètement.
Ce que je souhaite réaliser et cela grâce a votre aide :
1/ Mettre en mémoire le fichier TXT et transférer les données spécifiques dans mon fichier xls, Je souhaite que le programme reconnaisse dans le fichier txt (comme l'exemple ci dessous), le nom "[gain_somme_+20°c]" et qu'ensuite, que les valeurs en dessous, en partant de la première 13.74 soit coller dans la feuille " Gain_3T" . Je souhaite faire par reconnaissance car mon fichier txt peut changer de forme et que ce test "[gain_somme_+20°c]" peut se retrouver sur une ligne différente que celle du fichier actuel.
exemple :
Ligne 19 du fichier TXT
[gain_somme_+20°c]
Tableau Y="13.74 13.85 13.82 13.90 13.94 13.95 13.97
A recopier dans fichier « Pvm_macro_aide », feuille « Gain_3T », Valeur 13.74 en case D3, Valeur 13.85 en case D4 ….. et ainsi de suite
Ligne 47 du fichier TXT
[gain_diff_somme_deltac_+20°c]
Tableau Y="-1.09 -1.07 -1.16 -1.05 -1.04 -1.05 -1.08 -1.04
A recopier dans fichier « Pvm_macro_aide », feuille « G_diff_3T», Valeur –1.09 en case D3, Valeur –1.07 en case D4 ….. et ainsi de suite.
Ensuite je souhaite via le nom du fichier txt :
« banc_xxx_xxx_xxxxxxxx_xxxxxx_xxxx_xxx xxx n°02003 fermé.crb »
- > recopier la référence « 02003 » dans la case B4 de la feuille xls « Infos Plateau & Banc »
- > recopier la référence « fermé » dans la case B6 de la feuille xls « Infos Plateau & Banc »
- > recopier la date du fichier txt dans la case B7 de la feuille xls « Infos Plateau & Banc »
2/ Une fois le transfert des données du fichier txt effectué, via un bouton, transférer toutes les données de la feuille « Gain_3T » dans une feuille « Archiv_auto_20°c_fermé » dans le cas où le fichier txt est indiqué en « fermé » ou sinon « ouvert » si le fichier txt est indiqué en « ouvert » et enfin « Blindé ».
Attention, lors de la recopie des données dans la feuille « Archiv_auto_20°c_fermé », de bien vérifier que la colonne est vide, le cas échéant incrémenté dans une autre colonne.
Attention aussi à vérifier les doublons de « N° de plateau »en concordance avec « Etat », le cas échéant demander s’il faut écraser ou incrémenter une nouvelle colonne.
ensuite sauvegarder le fichier
Bonjour,
Quelmqu'un aurait déjà fait le transfert de donées TXT vers un fichier xls ? un exemple de programme.
Merci pour votre aide
Bonjour et bienvenue sur le forum
Un essai à tester
Mais il faut adapter le chemin du fichier à récupérer...
Sub essai()
ChDir "C:\Users\gmb\Desktop"
Workbooks.OpenText Filename:= _
" C:\Users\gmb\Desktop\banc_xxx_xxx_xxxxxxxx_xxxxxx_xxxx_xxx xxx n°02003 fermé.txt"
Range("A1").CurrentRegion.Select
Selection.Copy
Windows("Pvm_macro_aide v1.xls").Activate
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End Sub
Cela t'aide-t-il ?Bye !
Bonjour et bienvenue sur le forum
Un essai à tester
Mais il faut adapter le chemin du fichier à récupérer...
Sub essai()
ChDir "C:\Users\gmb\Desktop"
Workbooks.OpenText Filename:= _
"C:\Users\gmb\Desktop\banc_xxx_xxx_xxxxxxxx_xxxxxx_xxxx_xxx xxx n°02003 fermé.txt"
Range("A1").CurrentRegion.Select
Selection.Copy
Windows("Pvm_macro_aide v1.xls").Activate
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
End SubCela t'aide-t-il ?
Bye !
Merci bcp GMB !!
Je suis au travail, je vois ca ce soir mais j'ai eu le temps d'réécrire qques lignes de code.... je te tiens au courant...
encore merci
Un essai à tester sur la première partie.
Bonsoir GMB,
Je rentre tous juste de mon travail et je m'aperçoit du très bon travail que vous avez fait...... encore un grand merci !!!!!
Donc sinon j'ai fait tourner le code et çà marche super bien après quelques ajustements....
J'ai quand même quelques questions (je vous met mon fichier xls en PJ :
- > Je n'arrive pas a supprimer les guillemets après transfère dans les tableaux feuille "G_3T en D32, F32,H32,J32 ...etc, j'ai essayé de remplacer par du vide grâce a l'enregistreur de macro mais pas réussi... Auriez vous une idée en code VBA ?
- > pouvez vous faire disparaître la feuille de transfert (feuillx) après le transfert des données tjrs en vba ?
Voila et encore merci pour tous
Bonsoir GMB,
Je rentre tous juste de mon travail et je m'aperçoit du très bon travail que vous avez fait...... encore un grand merci !!!!!
Donc sinon j'ai fait tourner le code et çà marche super bien après quelques ajustements....
J'ai quand même quelques questions (je vous met mon fichier xls en PJ :
- > Je n'arrive pas a supprimer les guillemets après transfère dans les tableaux feuille "G_3T en D32, F32,H32,J32 ...etc, j'ai essayé de remplacer par du vide grâce a l'enregistreur de macro mais pas réussi... Auriez vous une idée en code VBA ?
- > pouvez vous faire disparaître la feuille de transfert (feuillx) après le transfert des données tjrs en vba ?
Voila et encore merci pour tous
Bonjour
Voilà une nouvelle version.
Pour supprimer les guillemets, il faut simplement les remplacer par du vide !
La fonction est : ‘’replace’’ Tu écris ce mot dans la feuille de code, tu cliques dessus puis sur la touche F1 et tu auras toutes les explications.
Pour suppimer une feuille, c’est ‘’delete’’
Je t‘ai fait tout cela.
Il est possible que cela coïnce un peu avec un fichier txt qui aura dans son nom le texte ‘’ouvert ‘’ au lieu de ‘’fermé’’ : l’un a 5 lettres, l’autre 6.
Pour la 2° partie, c’est ennuyeux aussi car je ne sais pas ce qui peut changer dans le nom de ces fichiers….
Bye !