Variable non definie

Résolu
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007 - 6 juin 2005 à 17:25
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007 - 6 juin 2005 à 17:58
http://cyrille2.free.fr//fr/wall/?p=88
voila pour ne pas recopier


Hrusdik
I do what I want , where I want , when I want<

9 réponses

cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
6 juin 2005 à 17:39
alors avec un dim Fichier as String, ça devrait mieux marcher.
3
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
6 juin 2005 à 17:47
c'est exactement le même problème, lorsque tu utilises une variable, il faut d'abord la déclarer avant de pouvoir l'utiliser.... c'est la base du développement .

Si tu as juste recopié le code sans le comprendre, je pense que tu n'as pas fini d'avoir des erreurs........

Bon courage

@+
3
cs_drahcir Messages postés 745 Date d'inscription mardi 30 novembre 2004 Statut Membre Dernière intervention 15 septembre 2009 4
6 juin 2005 à 17:36
désolé, un petit bug

je voulais juste dire : je suppose que tu as déclaré ta variable "Fichier" quelquepart.

@+
0
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007
6 juin 2005 à 17:37
Euh no paske jai recopié le code


Hrusdik
I do what I want , where I want , when I want<
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007
6 juin 2005 à 17:43
je vien desayer
ca marche mai il y a un ot prob
il di ke fs nes pa defini

Private Sub Form_Load()
ajouter.Enabled = False
envoyer.Enabled = False
supprimer.Enabled = False
fichier = App.Path & "\contacts.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(fichier) = False Then
Exit Sub
End If
Open fichier For Input As #1
Do While Not EOF(1)
Line Input #1, ligne1
contact.AddItem ligne1, x
Line Input #1, ligne2
contact.List(x, 1) = ligne2
x = x + 1
Loop
Close #1
End Sub

Hrusdik
I do what I want , where I want , when I want<
0
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007
6 juin 2005 à 17:48
OK chui debutant alor jai pa tro pensé a ca mai merci


Hrusdik
I do what I want , where I want , when I want<
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juin 2005 à 17:49
Salut
Comme tu n'as pas eu le courage de recopier ton code, le voici :
Ca commence fort : Si en plus tu nous disais à quelle ligne survient l'erreur (qui semble pourtant très claire), ça aiderait ...

Private Sub Form_Load()
ajouter.Enabled = False
envoyer.Enabled = False
supprimer.Enabled = False
Fichier = App.Path & "contacts.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.FileExists(Fichier) = False Then
Exit Sub
End If
Open Fichier For Input As #1
Do While Not EOF(1)
Line Input #1, ligne1
contact.AddItem ligne1, x
Line Input #1, ligne2
contact.List(x, 1) = ligne2
x = x + 1
Loop
Close #1
End Sub

-1- Tu fais une boucle Do-While pour dire "Si je lis la dernière ligne du fichier, je n'aurais pas d'erreur. Or, dans ta boucle, tu fais 2 "Line Input" --> Si ton fichier a un nombre de lignes impaires, tu auras une erreur.
-2- Quand tu tapes "contact.AddItem " , l'IDE (l'éditeur VB) te propose les variables à utiliser :
Tu lis donc item As String, [Index]
Comme expliqué dans l'aide de VB6, les infos entre crochets droits [ et ] sont facultatifs.
Dans ton cas, tu incrémentes ton X mais je ne penses pas que tu en aies réellement besoin.
-3- Ensuite, et c'est là qu'est l'erreur, sur la ligne "contact.List(x, 1)" avec le même procédé, VB te présente les paramètres Integer
Dans ton cas, tu lui donnes 'x' et '1' : Comme cela ne correspond pas à la bonne syntaxe, l'éditeur se dit qu'il s'agit d'un tableau à deux dimension qu'il ne connait pas --> Variable non définie

En fait, une ListBox ne supporte qu'un seul Item par ligne.
Cet item, du texte dans ton cas, peut-être indexé, mais ce n'est pas une obligation.
Le problème, c'est que si tu indexes, il faut aboslument que cet index soit unique, sinon, il y aura erreur

Alors, qu'y a t-il dans ton fichier ?
Il semble que les données aillent par couple et que tu veuilles les afficher suir la même ligne du ListBox
C'est plutôt un ListView que tu devrais utiliser.

Ne vient pas demander comment utiliser une ListView, tout est expliqué dans l'aide de VB6 ou bien il suffit d'ouvrir une seule source qui utilise une ListView pour comprendre comment ça marche (c'est un peu plus complexe que la ListBox)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juin 2005 à 17:54
(oula l'orthographe, beurk !)

Dim fs As Object
+ n'oublies pas d'ajouter un \ dans
Fichier = App.Path & "\contacts.txt

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
AZEazeazgfafaazea Messages postés 58 Date d'inscription jeudi 30 décembre 2004 Statut Membre Dernière intervention 21 septembre 2007
6 juin 2005 à 17:58
c bon si c pour te moquer de moi ca va la !!!!!!


Hrusdik
I do what I want , where I want , when I want<
0
Rejoignez-nous