Récuperation d'infos dans un txt pour création dynamique

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

Creepy

Guest
Bonjour le forum,

Je dois créer un treeview different en fonction de l'utilisateur.

Je sais créer la treeview, mais je voudrais mettre les informations de celle-ci dans un fichier TXT sous la forme :

Dada;tvwchild;"user1";"Michele",image1,image2

J'aurais un nombre de ligne variable en fonction de l'utilisateur. Comme chaque parametre est entre ";", je voudrais faire une macro qui boucle en fonction du nombre de ligne du fichier texte, qui récupere chaque parametre à chaque passage pour les appliquer à ma commande :

treeview.nodes.add param1, param2, "param3", etc ...

en faites je cale sur la partie ouverture du fchier, determination du nombre de ligne, recuperation de chaque parametre de la ligne pour le coller dans la variable qui va bien et ensuite l'appliquer.

Pouvez-vous m'aider ?

Merci d'avance

Creepy
 
bonjour Creepy

ce n'est pas la premiere fois que tu viens sur le forum . tu connais donc les regles de bases : cela ne sert à rien de doubler les questions ...

Lien supprimé

de plus avant de multiplier les fils tu pourrais prendre le temps de lire les reponses à tes anciennes questions et au moins dire si cela te convient ou pas

Lien supprimé


bonne journee
michel
 
Bonjour à tous,

Michel,

1 - J'estime ne pas avoir doublé les messaeges, car j'avance sur le projet et mes questions sont plus precises. Je n'ai pas eu de reponse dans le premier fil que tu mentionnes, car je pense que je devais être trop brouillon.

2 - Le deuxième fil m'a papporté une partie de la réponses effectivement, quand à l'ouverture et l(importation des données. Je te rassure j'ai bien pris le temps de le lire.

3 - Maintenant j'aimerais bien arriver à compter le nombre de ligne dans ce .txt et recuperer dans chaque ligne les valeurs qui sont entre ";"

Toutefois je m'excuse si effectivement vous pensez qu'il s'agit d'un doublons, ce n'est effectivement pas dans mes habitudes.

Merci de vos reponses sur le comptage et recuperation des infos dans le .txt

++

Creepy
 
Salut all,

J'ai un bout de solution pour recuperer les infos entre ";"

la commande SPLIT permet de decouper une chaine de caractere en fonction d'une symbole.

Par exemple :

Split ("c:\dede\dada\dudu","\") donne :
dede
dada
dudu

Voila je cherche toujours de l'aide sur comment determiner le nombre de ligne de mon .txt

++

Creepy
 
bonjour Creepy

j'espere que la macro ci dessous repondra à ta demande ( adapté d'une procedure de Frederic Sigonneau )

Sub NbLignesFichierTexte()
'adapté d'une procedure de fs
Dim Fso As Object, Fichier As Object
Dim NbLignes As Integer
Set Fso = CreateObject("Scripting.FileSystemObject")
Set Fichier = Fs😵penTextFile("C:\MonFichier.txt", 8)
NbLignes = Fichier.Line
Fichier.Close
MsgBox "Il y a " & NbLignes & " lignes dans les fichier txt "
End Sub


bonne journee
michel
 
Bonjour Michel, Creepy, le Forum

Ben tu as été plus rapide que moi Michel mais j'avais aussi pratiquement l'équivalent, en partie de Clément Marcotte :

Sub TxtLineCountMethodOne()
Dim Chemin As String, Fichier As String
Dim FSO As Object, TXT As Object
Dim Nbr As Long

Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set TXT = FSO.OpenTextFile(Chemin & Fichier, 8, False)
Nbr = TXT.Line - 1
MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes "
TXT.Close

Set FSO = Nothing
Set TXT = Nothing
End Sub

Par contre on notera, Michel, que lorsque l'on fait un Set d'Object il est toujours préfarable et recommandé de songer à le(les) vider à "Nothing" en sortie de procédure.

Sinon, vu que Creepy utilise "Split" pour récupérer ces champs, il peut aussi faire un truc comme ceci :

Sub TxtLinesCountMethodTwo()
Dim Chemin As String, Fichier As String
Dim Nbr As Long
Dim i As Integer, ii As Long, iii As Integer
Dim Record As String
Dim Container As Variant


Chemin = ThisWorkbook.Path & "\"
Fichier = "UpTo20040102.txt"

ii = 1

Open Chemin & Fichier For Input As #1
Do While Not EOF(1)

Line Input #1, Record
Nbr = Nbr + 1
Container = Split(Record, Chr(59))
For i = 1 To UBound(Container)
iii = i - 1
Cells(ii, i) = Container(iii)

Next
ii = ii + 1
Loop
Close #1

MsgBox "le Fichier " & Fichier & " contient " & Nbr & " lignes" & vbCrLf & _
"reportée jusqu'en ligne " & Range("A65536").End(xlUp).Row

End Sub

Bonne Journée à Tous et Toutes
@+Thierry
 
bonjour @+Thierry , rebonjour Creepy

@+Thierry , merci pour le conseil du "Nothing"

peux tu me preciser pourquoi dans ta version tu utilises Nbr = TXT.Line - 1 , ce qui enleve une ligne dans le decompte du nombre de lignes du fichier texte


bonne journee
michel
 
Re salut Michel, Creepy

Pour le TXT.Line - 1 c'est pour la bonne et simple raison que le mode "8" signifie que l'on "Append" le fichier.txt et que, par conséquent, le FileSystemObject va chercher la première ligne vide. Etant donné que dans le cas présent on veut compter les lignes pleines, il faut soustraire un pour avoir réélement le nombre de lignes du txt...

Bon Après Midi
@+Thierry
 
Bonjour à tous,

Petite question au passage à Thierry sur son conseil:

Si la variable object est de portée procédure, pourquoi faut-il la remettre à Nothing à la fin? N'est-elle pas perdue à la fin de la procédure (end sub)?
Y a-t-il un détail qui m'échappe?

Merci d'éclairer ma lanterne.

Laurent.
 
Pfffff decidement je ne comprends pas !!

Mes variables sont bien attribuées, c'est au niveau de la creation du treeview !!

Bon Ok le code est pas super propre, mais bon pour faire un essai et voir si ca marche c'etait suffisant !!!

J'ai même essayé avec des & avant les , des variables mais sans effet

Vous auriez une idée ?

++

Creepy
 
bonjour Creepy

j'espere que l'exemple joint pourra t'aider
apres plusieurs tests infructueux , j'ai été forcé de remettre en forme ton fichier texte pour que cela puisse fonctionner . tu pourras modifier cette mise en forme selon tes besoins .
dans l'exemple je n'ai pas pris en compte l'eventualité des parametres 5(image) et 6(selectedimage) dans le fichier texte


bonne soiree
michel
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour