Erreur de compilation:variable non définie [Résolu]

Signaler
Messages postés
49
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
12 juillet 2013
-
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013
-
bonjour à tous,

Je travaille avec Excel2007 et VBA,j'ai créé deux feuilles Excel:Feuil1, et Feuil2.
Dans Feuil1 j'ai inséré une liste:ListBox1, je voulais récupérer l'élément sélectionné dans cette liste:
[i]Dim portNAME As String
Dim j As Integer
Dim portNbr As Long
For j = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(j) Then
portNAME = ListBox1.List(j)
portNbr = Len(portNAME)
End If
Next j/i
Mais là il s’arrête au niveau de ligne en vert et m'affiche le message suivant: Erreur de compilation: Variable non définie !
Il ne reconnait la ListBox1 ?!
Quelqu'un pourrait m'aider???
Merci d'avance

9 réponses

Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013

Bonjour,
dans ta feuil1 si tu ta listbox est un contrôle activeX alors ceci suffit:
Dim portNAME As String
Dim portNbr As byte

portNAME = Sheets("Feuil1").ListBox1.Value
portNbr = Len(portNAME)

pas besoin de boucle
@+
Bonjour,
ce code est enregistré ou ? un module, un userform ... ?

Fabien

Bonjour,
1) je ne ne t'envois pas de code tant que tu n'utilises pas les balises de code VB, comme ça:
Dim portNAME As String 
Dim j As Integer 
Dim portNbr As Long 
For j = 0 To ListBox1.ListCount - 1 
If ListBox1.Selected(j) Then 
portNAME = ListBox1.List(j) 
portNbr = Len(portNAME) 
End If 
Next j 


2) En résumant: tu fais une boucle qui va de 0 à ListBox1.ListCount - 1
En suite tu lui demandes: si le item est sélectionné ....

Pourquoi ne pas utiliser la sub
Private Sub ListBox1_Click()???

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
ta listbox tu l'as créée à partir de quel barre d'outils ? "boite à outils controle" ou "formulaires" ?


Fabien
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Bonjour, rv83toulon,
Pourquoi, selon toi, vais-je te demander de corriger ton code ou de le compléter ? (ne réponds pas trop vite. Réfléchis d'abord)



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
49
Date d'inscription
mardi 21 février 2012
Statut
Membre
Dernière intervention
12 juillet 2013

j'ai crée ma listbox depuis:développeur=>insérer=>controles Activex=>zone de liste
j'enregistre ce code dans un module.
Merci rv83toulon, j'ai du faire commme toi Sheets("Feuil1").ListBox1.Value
et non pas ListBox1.Value tout court
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013

Bonjour ucfoutu,
je pense que c'est parce que si aucune valeur n'est sélectionnée dans la listbox j'aurai une erreur.
Donc je devrais rajouter un test pour savoir si une valeur est sélectionnée et afficher un msgbox si ce n'est pas le cas.
C'est çà ?

si oui alors:
Dim portNAME As String
Dim portNbr As Long


If Sheets("Feuil1").ListBox1.ListIndex <> -1 Then
portNAME = Sheets("Feuil1").ListBox1.Value
portNbr = Len(portNAME)
Else
MsgBox ("Merci de sélectionner une valeur!")
End If


@+
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
227
Voilà !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Statut
Membre
Dernière intervention
25 avril 2013

ucfoutu, merci de ta remarque


@+