Travaillant sur VBA, J'ai une liste déroulante nommée Reference ( de R1 à R80 ), et une case texte nommée Désignation.
Sur une feuille excel, j'ai deux tableaux du coup : Reference (80 lignes ) et Désignation ( 80 lignes )
Je souhaite par exemple quand je clique sur la Reference R5, La case Désignation se remplie autotiquement avec la 5eme case du tableau désignation (5 eme ligne)
Je ne sais pas si je suis claire cette fois mais je débute dans Excel et VBA
bonjour,
personnellement... j'ai rien compris
il serait sans doute utile (si vous voulez une réponse) de réduire la question à quelque chose de compréhensible
nico
Bonjour.
C'est trop réduit, là, et sans doute encore moins compréhensible
(Conseil: mettez la description la plus détaillé de ce que vous souhaitez en face des cellules concernées dans le classeur modèle anonymisé que vous joindrez.)
bonjour Dranreb,
réduire là question.. oui là c'est un peu trop réduit
voilà ce que je voulais dire par réduire:
si par exemple j'ai deux colonnes référence et désignation dans une feuille et que je veux avoir ces infos dans un userform pour choisir ce qui me plait je peux ajouter une listbox (pj) avec les deux pour ensuite cliquer dessus et faire je ne sais pas quoi
Nicopec,
Tout d'abord merci beaucoup pour ta reactivité.
Je t'ai mis en PJ mon exemple, Ce que j'aimerais bien c'est qu'en selectionnant une reference, la case de designation se remplie automatiquement
Bon avec un UserForm c'est à peine plus compliqué :
Code:
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex = -1 Then TextBox1 = "" Else TextBox1 = Application.VLookup(ComboBox1, [Référence:Désignation], 2, 0)
End Sub
Private Sub UserForm_Initialize()
ComboBox1.List = [Référence].Value
End Sub
Bonjour Job75. Oui: j'avais pris la discussion alors que le message 1, en cours d'édition avait probablement été validé accidentellement, et qu'il n'en restait que "aa" pour tout texte.
Maintenant tout est clair, et classique.
Bonjour
Bonjour le Fil ,le Forum
Comme Dit et en me basant sur l'exemple :
On peut éviter les Vlookup et autre MatchFound
pour l'exemple (simplifié)
VB:
Private Sub ComboBox1_Change()
With Me.ComboBox1
If .ListIndex = -1 Then Me.TextBox1 = "" Else Me.TextBox1 = .List(.ListIndex, 1)
End With
End Sub
Private Sub UserForm_Initialize()
Me.ComboBox1.List = Range("A2:B81").Value 'méthode Simple pour la plage Lol
End Sub
C'est une autre façon de faire mais .ListIndex > -1 peut être évité en utilisant directement la condition toute faite sans opérateur relationnel .MatchFound
(ou bien Not .MatchFound pour .ListIndex = -1)