Excel 2002 - Menu deroulant alimentant textbox
Le
Alex

Bonjour à tous,
Sous excel 2002 dans un userform et dans un frame, j'ai une combobox
NOMPREN et une textbox NOMSERV, la combobox devant alimenter la
textbox, mais malheureusement j'ai le message suivant :
Erreur d'Excution 1004 : Impossible de lire la Propriété Vlookup de la
classe WorksheetFunction
J'ai bien controlé mon deroulant, il y a pas de "trou" ni dans ma
premiere colonne ni dans la seconde.
Je ne comprends pas pourquoi, Quelqu'un aurait il une idée d'ou peux
provenir le dysfonctionnement ?
Merci par avance de votre aide.
Bien cordialement.
Alex
J'ai écrit ceci :
Private Sub UserForm_Activate()
Sheets("Deroulant").Activate
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
NOMPREN = Selection.Address
NOMPREN.RowSource = NOMPREN
NOMPREN.ListIndex = 0
End Sub
et
Private Sub NOMPREN_Change()
IndexAlex = NOMPREN.ListIndex
Alex = NOMPREN.List(IndexAlex)
DernierNOMSERV = Range("Deroulant!B1").End(xlDown).Address
NOMSERV.Value = WorksheetFunction.VLookup(Alex, Range("Deroulant!A1:"
& DernierNOMSERV), 2, False)
End Sub
Sous excel 2002 dans un userform et dans un frame, j'ai une combobox
NOMPREN et une textbox NOMSERV, la combobox devant alimenter la
textbox, mais malheureusement j'ai le message suivant :
Erreur d'Excution 1004 : Impossible de lire la Propriété Vlookup de la
classe WorksheetFunction
J'ai bien controlé mon deroulant, il y a pas de "trou" ni dans ma
premiere colonne ni dans la seconde.
Je ne comprends pas pourquoi, Quelqu'un aurait il une idée d'ou peux
provenir le dysfonctionnement ?
Merci par avance de votre aide.
Bien cordialement.
Alex
J'ai écrit ceci :
Private Sub UserForm_Activate()
Sheets("Deroulant").Activate
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
NOMPREN = Selection.Address
NOMPREN.RowSource = NOMPREN
NOMPREN.ListIndex = 0
End Sub
et
Private Sub NOMPREN_Change()
IndexAlex = NOMPREN.ListIndex
Alex = NOMPREN.List(IndexAlex)
DernierNOMSERV = Range("Deroulant!B1").End(xlDown).Address
NOMSERV.Value = WorksheetFunction.VLookup(Alex, Range("Deroulant!A1:"
& DernierNOMSERV), 2, False)
End Sub
Es-tu certain que tu ne mélanges pas les 2 fonctions suivantes :
VLookup() et LookUp() ce n'est pas la même chose.
MichD
---------------------------------------------------------------
Merci pour votre réponse.
Non je pense que la foncion est bien VLookup.
J'ai testé lookup, j'ai le message suivant : Erreur de compilation :
Nombre d'arguments incorrect ou affectation de propriété incorrecte
Mais peut-être qu'il faut modifier entièrement ma ligne de commande
lorsqu'on utilise Lookup ?
Merci par avance de votre aide.
Bien cordialement.
Alex
WorksheetFunction.VLookup(Alex, Range("Deroulant!A1:B" &
DernierNOMSERV), 2, False)
Ceci fonctionne bien, remplace dans la plage de cellules la lettre B par la
lettre de
la dernière colonne de ta plage de cellules. (Tu avais omis de la déclarer)
Ceci veut dire aussi que NOMSERV est un objet possédant une propriété
"Value"
MichD
---------------------------------------------------------------
Merci pour la réponse.
J'ai testé avec la solution proposé mais cela ne fonctionne pas mieux,
mais j'ai trouvé la solution, en conservant ma ligne de commande
initiale. Au lieu de mettre mes lignes de commandes sur la procédure
Change, je l'ai mis sur la procédure AfterUpdate et cela fonctionne,
car dans la procédure User_form Activate, l'initialisation du menu
déroulant, s'interrompait pour passer sur la procédure change avant la
fin d'initialisation dans activate, ce qui provoquait le message
d'erreur.
Bien cordialement.
Alex