Suivant ce qui est affiché dans une ComboBox, afficher des infos [Résolu]

Signaler
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonsoir à tous,

Je bute sur un problème d'affichage :

En VBA Excel, j'ai créé un UserForm qui, suivant ce qui est affiché dans la combobox,
inscrit des données dans des Labels.

Dans ma colonne A de la feuille Excel, j'ai une liste à faire apparaitre dans la ComboBox,
puis des données dans les Colonnes B, C & D.

Voici mon code :

Private Sub UserForm1_Initialize()

ComboBoxListe1.RowSource = "NomFeuille!A2:A167"

End Sub
' Cela fonctionne très bien !

puis, pour afficher les infos :

Private Sub ComboBoxListe1_Change()

For i = 2 to 167
aa = ("A" & i)
bb = ("B" & i)
cc = ("C" & i)
dd = ("D" & i)

If ComboBoxListe1.Value = Range(aa).Value then
Label1.Value = Range(bb).Value
Label2.Value = Range(cc).Value
Label3.Value = Range(dd).Value
End If
Next i
End Sub
' Dans cette configuration, ça marche très bien, mes infos s'affichent dans les Labels, par contre, si je rajoute sous le Label3 :

ElseIf ComboBoxListe1.Value <>Range(aa).Value then
Label1.Value = ""
Label2.Value = ""
Label3.Value = ""
' pour gérer les noms qui ne font pas parti de la liste de la ComboBox, même si un appartient bien à cette fameuse liste, mes Labels reste vierge, alors qu'ils devraient afficher des infos.

Une âme charitable aurait-elle le moyen de m'aider à faire apparaitre mes infos si le nom est existant et à l'inverse, ne rien afficher si le nom ne correspond à rien.

GRAND MERCI et Joyeuse Fêtes de Fin d'Année


Mortalino

5 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Merci pour l'info de tester pas à pas, j'ai pu remarquer que ta première réponse était bonne, il manquait juste avant le "Else", Exit Sub.

Le fait de ne pas l'avoir mis, la procédure continuait la boucle.

Merci encore et meilleurs voeux pour l'année 2006, joie, santé et argent.


Mortalino
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
vraiment étrange...
au passage, le ElseIf est inutile :

Private Sub ComboBoxListe1_Change()

For i = 2 to 167
aa = ("A" & i)
bb = ("B" & i)
cc = ("C" & i)
dd = ("D" & i)

If ComboBoxListe1.Value = Range(aa).Value then
Label1.Value = Range(bb).Value
Label2.Value = Range(cc).Value
Label3.Value = Range(dd).Value
Else
Label1.Value = VbNullString
Label2.Value = VbNullString
Label3.Value = VbNullString
End If
Next i
End Sub
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut Renfield,


j'ai essayé ta méthode mais ça me fait le même problème :
le Else
Label1.Value = VbNullString
etc...
End If
prend le dessus et donc mes infos ne s'affiche pas.

PS : j'ai mis Label3.Caption car le Value n'est pas pris en compte.

Sinon le fait que la combobox ai l'écriture intuitive n'y fait elle pas pour quelque chose ?

Merci encore !


Mortalino
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
il va te falloir tester en pas a pas, et regarder les valeurs de ComboBoxListe1.Value et Range(aa).Value

Renfield
Admin CodeS-SourceS - MVP Visual Basic
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
ah, ok, je pensais la boucle voulue ^^



bien vu

Renfield
Admin CodeS-SourceS - MVP Visual Basic