Bonjour à tous et a toutes
Une sous procédure lit un fichier et crée une ou deux listes (dictionnary)
pour afficher le contenur
Voici le code associé qui lit seulement le fichier et affiche la valeur du champs3 de chaque ligne de ce fichier
Ici le morceau de code ne pose pas de probleme,et m'affiche bien le champs 3 pour chaque ligne du fichier mais etant donné que je dois stocker dans un dictionnary le champs 3 de chaque ligne ,apres le next je rajoute donc ce morceau de code
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 Dim FSO, LeFichier Dim CheminNomFichier, PourTbl, TblLigne, TblColonne Dim T 'Champs1 pour chaque ligne correspond au nom du poste Dim Champs1 Dim compteur compteur = 1 Set fso = CreateObject("Scripting.FileSystemObject") CheminNomFichier = "c:\Dossier\Dossier1\monfichier.txt" Set LeFichier = fso.OpenTextFile(CheminNomFichier,1) PourTbl = LeFichier.ReadAll LeFichier.Close 'ajout d'un retour chariot à la derniere ligne pour le Splitage PourTbl = PourTbl & vbclrf TblLigne = Split(PourTbl,vbCrLf) 'pour obtenir le nombre de ligne T = Ubound(TblLigne) 'dimensionne chaque variable redim Champs1(T) 'Pour creer une liste Set ObjDicoReseau = CreateObject("Scripting.Dictionary") 'Pour chaque ligne for T =0 to ubound(TblLigne) TblLigne(T) = TblLigne(T) & ";" TblColonne = split(TblLigne(T),";") ' récupère le 3 eme champs du fichier Champs1(T)= TblColonne(3) ObjDicoReseau.Add T,Champs1(T) 'AFFICHE et va a la ligne MsgBox "Champs1(" & T & ") contient: " & Champs1(T) & vbcrlf _ compteur = compteur + 1 next
Une fois le morceau de code ajouté des que j'essaie de l'éxécuter il m'indique une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 'Afficher les elements du dictionnary ' k = ObjDicoReseau.keys ' i = ObjDicoReseau.items 'For n = 0 To ObjDicoReseau.Count - 1 ' MsgBox k(n) & ", " & i(n) 'Next
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
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 Set fso = CreateObject("Scripting.FileSystemObject") CheminNomFichier = "c:\Dossier\Dossier1\monfichier.txt" Set LeFichier = fso.OpenTextFile(CheminNomFichier,1) PourTbl = LeFichier.ReadAll LeFichier.Close 'ajout d'un retour chariot à la derniere ligne pour le Splitage PourTbl = PourTbl & vbclrf TblLigne = Split(PourTbl,vbCrLf) 'pour obtenir le nombre de ligne T = Ubound(TblLigne) 'dimensionne chaque variable redim Champs1(T) 'Pour creer une liste Set ObjDicoReseau = CreateObject("Scripting.Dictionary") 'Pour chaque ligne for T =0 to ubound(TblLigne) TblLigne(T) = TblLigne(T) & ";" TblColonne = split(TblLigne(T),";") ' récupère le 3 eme champs du fichier Champs1(T)= TblColonne(3) ObjDicoReseau.Add T,Champs1(T) 'AFFICHE et va a la ligne MsgBox "Champs1(" & T & ") contient: " & Champs1(T) & vbcrlf _ compteur = compteur + 1 next
Ici le morceau de code ne pose pas de probleme,et m'affiche bien le champs 3 pour chaque ligne du fichier mais etant donné que je dois stocker dans un dictionnary le champs 3 de chaque ligne apres le next je rajoute donc ce morceau de code
(Set ObjDicoReseau = CreateObject("Scripting.Dictionary") ==>cette ligne a déja été déclaré)
Une fois le morceau de code ajouté des que j'essaie de l'éxécuter il m'indique une erreur: INDICE EN DEHORS DE LA PLAGE [NUMBER 3 ]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 'Afficher les elements du dictionnary ' k = ObjDicoReseau.keys ' i = ObjDicoReseau.items 'For n = 0 To ObjDicoReseau.Count - 1 ' MsgBox k(n) & ", " & i(n) 'Next
Ligne 70 / caract 10 ..soit la ligne suivante Champs1(T)= TblColonne(3)
Je ne comprends pas trop pourquoi j'ai une tel erreur ,vu que précedement sans le morceau de code pour afficher les dictionnary,elle n'apparaissait pas.
Partager