Bonjour à tous,
Je viens d'arriver sur ce forum que je trouve très complet, très détaillé et qui est une vraie mine d'informations sur VBA.
Pour un travail, je dois faire un programme qui pourrait automatiser le traitement des données. En fait, je dois ouvrir 1 ou plusieurs fichiers textes contenant à un moment les colonnes avec mes données. Dans un premier temps, j'avais un fichier exemple, avec des données de 60 lignes que je copiais à un endroit précis dans un template. Cet endroit était la plage de données préselectionnées d'un graphe (en fait le template contenant des graphes vides correspondant à des plages de données, qui, si elles étaient remplis me traçait un graphe comme je voulais).
Jusque là tout marchait bien, seulement voila (eh oui), il s'est avéré qu'à un moment le fichier exemple est devenu un fichier réel et que le nombre de lignes dans ma colonne peut changer. Et je ne sais pas comment utiliser mon template ou créer un autre graphique mon créer des graphes qui s'adapteraient exactement à ces données.
Pour résumer: Je souhaite ouvrir un fichier texte contenant au début, des lignes de baratin et des grandes colonnes, colonnes que je souhaite découper en plusieurs sous-colonnes. Pour différencer chaque sous colonne, il y a un nombre devant qui reste constant (et une ligne entre chacune d'elles), voila un petit extrait du hichier d'entrée:
Et voila un petit extrait de mon code:500000.000000 -1.000000 3.094330E-13 5.503980E-9 89.675602
500000.000000 -0.950000 3.110510E-13 6.000110E-9 89.648201
500000.000000 -0.900000 3.120450E-13 3.049970E-9 89.821742
300000.000000 -1.000000 3.034320E-13 -2.661080E-9 -89.733428
Je vous remercie d'avance pour votre patience et pour votre aide. J'espère ne pas avoir fait un message trop difficile à comprendre pour un premier message.
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 For f = 1 To UBound(fn) Workbooks.Open fn(f) freq = Range("A43").Value i = 0 ' row which is reading in the original data file j = 0 ' variable to know if there is no more frequency in the original ddata file While (j <> 3 And freq <> 0) If (freq = Range("A43").Offset(i, 0).Value) Then Range("A43:E43").Offset(i, 0).Copy newBook.Sheets("Summary").Range("B53").Offset(ii, 6 * (k)) i = i + 1 ii = ii + 1 Else k = k + 1 i = i + 1 freq = Range("A43").Offset(i, 0).Value j = j + 1 ii = 0 'Number of row for one frequency
Le_bavard
Partager