Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

thebenoit59

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

Quelle est la procédure en blablabla par exemple ?
J'ai utilisé ton code, en remplaçant les sous-procédures par des MsgBox et tout fonctionne même la valeur en I7
 

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

 

Discussions similaires

Réponses
4
Affichages
652
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…