Récupérer le "ListIndex" d'un ComboBox

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Je me heurte à un probème qui pourtant devrait être simple à résoudre.
J'ai un ComboBox. Quand je choisis un de ses items, je voudrais récupérer sa position dans la liste du ComboBox.

J'ai écrit ceci :
VB:
Private Sub ComboDilutions_Change()

If ComboDilutions.ListIndex = 0 Then
blablabla
ElseIf ComboDilutions.ListIndex = 1 Then
chabada
ElseIf ComboDilutions.ListIndex = 2 Then
scoubidou
Else
laputaqueloparrio
End If

chxcombo = ComboDilutions.ListIndex   'chxcombo est une variable "Public" déclarée dans un module standard

End Sub
Où me suis-je encore bien planté ?

Merci d'avance pour tout commentaire.
 

thebenoit59

XLDnaute Accro
Re : Récupérer le "ListIndex" d'un ComboBox

Bonjour Magic_Doctor, le forum.

Je ne vois pas d'erreur dans le code. En testant ton fonctionnement sur une Combobox standard, cela fonctionne.

Code:
Private Sub ComboBox1_Change()
With Me.ComboBox1
    If .ListIndex = 0 Then MsgBox "Premier"
    If .ListIndex = 1 Then MsgBox "Deuxième"
    If .ListIndex = 2 Then MsgBox "Troisième"
    c = .ListIndex: Debug.Print c
End With
End Sub

Le valeur ne se récupère pas, ou tu n'arrives pas à l'exploiter par la suite ?
 

Magic_Doctor

XLDnaute Barbatruc
Re : Récupérer le "ListIndex" d'un ComboBox

Ça ne marche toujours pas et le ComboBox, lui, fonctionne parfaitement.
Si je choisis le 1er item du ComboBox, la valeur gardée en mémoire (ChxcomboDilutions) et utilisée ailleurs est 0.
Si je choisis le 2ème item du ComboBox, la valeur gardée en mémoire (ChxcomboDilutions) et utilisée ailleurs est 1.
etc.
Pour vérifier, j'ai écrit en fin de procédure :
VB:
Private Sub ComboDilutions_Change()

If ComboDilutions.ListIndex = 0 Then
blablabla
ElseIf ComboDilutions.ListIndex = 1 Then
chabada
ElseIf ComboDilutions.ListIndex = 2 Then
scoubidou
Else
laputaqueloparrio
End If

chxcombo = ComboDilutions.ListIndex   'chxcombo est une variable "Public" déclarée dans un module standard
[I7] = chxcombo 'uniquement pour voir instantanément sur la feuille la position dans le ComboBox de l'item sélectionné
 
End Sub
Si je clique sur n'importe lequel des 3 1ers items, rien n'apparaît dans la cellule I7. En revanche, quand je choisis le dernier item (le 4ème), là apparaît enfin 3.
Pourquoi diable rien n'apparaît pour les 3 1ers items ?

Mais, merci pour ton intervention.
 

Magic_Doctor

XLDnaute Barbatruc
Re : Récupérer le "ListIndex" d'un ComboBox

Ce sont des procédures de mises en forme du style :
VB:
        If compt1 = 2 Then Range("B8").Borders(xlEdgeBottom).ColorIndex = xlAutomatic
        Range("11:25").EntireRow.Hidden = False 'montre "RECONSTITUTION"
        Modif_Tableaux_Reconstitution
        Range("25:33").EntireRow.Hidden = True 'occulte "DILUTIONS SERINGUE"
        Range("34:43").EntireRow.Hidden = True 'occulte "DILUTIONS FLACON"
        Range("44:60").EntireRow.Hidden = True 'occulte "MÉLANGE TOXINES"
        ActiveSheet.Shapes("Exergue1").Visible = True
        ActiveSheet.Shapes("Exergue2").Visible = IIf([C9] = 0, False, True)
        ActiveSheet.Shapes("Exergue3").Visible = False
        ActiveSheet.Shapes("Exergue4").Visible = False
        ActiveSheet.Shapes("Exergue5").Visible = False
 

Bebere

XLDnaute Barbatruc
Re : Récupérer le "ListIndex" d'un ComboBox

bonjour Magic-doctor,Thebenoit
ajout d'un test si sélection présente ou
essayer le code avec évènement click

Private Sub ComboDilutions_Change()

If ComboDilutions <> "" Then
If ComboDilutions.ListIndex = 0 Then
blablabla
ElseIf ComboDilutions.ListIndex = 1 Then
chabada
ElseIf ComboDilutions.ListIndex = 2 Then
scoubidou
Else
laputaqueloparrio
End If

chxcombo = ComboDilutions.ListIndex 'chxcombo est une variable "Public" déclarée dans un module standard
[I7] = chxcombo 'uniquement pour voir instantanément sur la feuille la position dans le ComboBox de l'item sélectionné
End If

End Sub
 

Discussions similaires

Réponses
4
Affichages
652

Statistiques des forums

Discussions
314 207
Messages
2 107 274
Membres
109 791
dernier inscrit
frederic.perrier@hotmail.