1 pièce(s) jointe(s)
récupéré un fichier txt dans excel avec séparateur
Bonjour,
J'ai comme projet de créer un circuit pour la recharge et la décharge d'une batterie : le but est de voir son nombre de cycles, la variation de la capacité avec le temps...
Ce circuit est réalisé à base d'arduino. Je récupère grâce à ce dernier la tension ainsi que le temps de charge/décharge. Les données sont séparées par un ";" et par un retour à la ligne lorsque que l'on change de mode (charge ou décharge).
Exemple :
CHARGE
4.2;4.3;...
DECHARGE
3.8;3.7;...
Les données sont récupérées directement dans un fichier .txt
Je désire alors récupérer ces données en faisant en sorte de mettre la charge dans la colonne A la décharge dans la colonne B ...
N'ayant jamais fait de VBA, j'ai fait de nombreuses recherches et j'ai trouvé pas mal de pistes.
Mais je rencontre des problèmes entre autre je ne sais pas quoi mettre en condition de fin pour le for j
Si vous avez des suggestions ou des liens à me conseiller je suis preneur de tout.
Merci d'avance pour vos aides.
Pierre GACHET
Démonstration à la romaine ayant fait ses preuves depuis longtemps !
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| Sub Demo1()
Const FICHIER = "D:\Tests4Noobs\test.txt"
If Dir(FICHIER) = "" Then Beep: Exit Sub
F% = FreeFile
Open FICHIER For Input As #F
SPQ = Split(Input(LOF(F), #F), vbNewLine)
Close #F
If UBound(SPQ) < 0 Then Beep: Exit Sub
With Feuil1
.UsedRange.Clear
For R& = 0 To UBound(SPQ) + (SPQ(UBound(SPQ)) = "") Step 2
C& = C& + 1
SP = Split(SPQ(R + 1), ";")
.Cells(1, C).Value = SPQ(R)
With .Cells(2, C).Resize(UBound(SP) + 1)
.Value = Application.Transpose(SP)
If Application.DecimalSeparator <> "." Then .Formula = .Value
End With
Next
End With
End Sub |
Comprendre en suivant le code en mode pas à pas (touche F8) tout en contrôlant le contenu de la fenêtre des Variables locales …
_________________________________________________________________________________________________________
Merci de cliquer sur :plusser: pour chaque message ayant aidé puis sur :resolu: pour clore cette discussion …