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

mimi09jn
Messages postés
49
Date d'inscription
mardi 21 février 2012
Dernière intervention
12 juillet 2013
- 25 avril 2013 à 12:56 - Dernière réponse : rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
- 25 avril 2013 à 16:18
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
Afficher la suite 

Votre réponse

9 réponses

Meilleure réponse
rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
- 25 avril 2013 à 14:22
3
Merci
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
@+

Merci rv83toulon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 95 internautes ce mois-ci

Commenter la réponse de rv83toulon
0
Merci
Bonjour,
ce code est enregistré ou ? un module, un userform ... ?

Fabien
Commenter la réponse de fabiendag
Utilisateur anonyme - 25 avril 2013 à 13:28
0
Merci
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
Commenter la réponse de Utilisateur anonyme
0
Merci
ta listbox tu l'as créée à partir de quel barre d'outils ? "boite à outils controle" ou "formulaires" ?


Fabien
Commenter la réponse de fabiendag
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 25 avril 2013 à 14:48
0
Merci
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.
Commenter la réponse de ucfoutu
mimi09jn
Messages postés
49
Date d'inscription
mardi 21 février 2012
Dernière intervention
12 juillet 2013
- 25 avril 2013 à 15:02
0
Merci
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
Commenter la réponse de mimi09jn
rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
- 25 avril 2013 à 15:07
0
Merci
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


@+
Commenter la réponse de rv83toulon
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 25 avril 2013 à 16:09
0
Merci
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.
Commenter la réponse de ucfoutu
rv83toulon
Messages postés
68
Date d'inscription
mercredi 2 mars 2011
Dernière intervention
25 avril 2013
- 25 avril 2013 à 16:18
0
Merci
ucfoutu, merci de ta remarque


@+
Commenter la réponse de rv83toulon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.