Suivant ce qui est affiché dans une ComboBox, afficher des infos

Résolu
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 28 déc. 2005 à 20:47
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 1 janv. 2006 à 17:33
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

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
1 janv. 2006 à 04:54
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
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
29 déc. 2005 à 09:48
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
30 déc. 2005 à 13:01
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
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
30 déc. 2005 à 13:05
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 janv. 2006 à 17:33
ah, ok, je pensais la boucle voulue ^^



bien vu

Renfield
Admin CodeS-SourceS - MVP Visual Basic
0
Rejoignez-nous