[VBA] Probleme fonction VLookup

Résolu/Fermé
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 - 19 oct. 2011 à 16:42
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 - 20 oct. 2011 à 16:05
Bonjour,

J'ai un petit probleme avec la fonction VLookup de vba je ne comprend pas pourquoi elle me renvoi l'erreur 2042...

voici le code de la macro
Private Sub ComboBox1_Change()
    Dim R As Variant
 R=Application.VLookup(ComboBox1.value,Worksheets("annexe").Range("B4:P23"), 13, False)
    Label16.Caption = R
End Sub


la valeur de la combobox est X38

la feuille annexe correspond a un tableau de valeur que je vais vous réduire

colonne B : X38
C24
B78

colonne M(13) : 21000
42000
53000

En attendent vos réponse, merci d'avance

9 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 307
19 oct. 2011 à 17:01
Bonjour,

Et que dit l'erreur 2042 ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 750
19 oct. 2011 à 17:02
Salut,
Au lieu de Application.VlookUp essaye :
Application. WorksheetFunction.VLookup(Valeur, Plage, Colonne, False)
peut être que...
0
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 3
19 oct. 2011 à 17:12
merci de vos réponse mais je ne sais pas ce que me dit l'erreur il y a seulement marquer erreur 2042

et si je fais ce que tu m'a demandé pijaku j'ai l'erreur 1004 impossible de lire la propriété VLookup de la class WorksheetFunction...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 307
19 oct. 2011 à 17:24
bon va procéder autrement....
en supposant que la valeur du combo est incluse dans le tableau
valeur=combobox1.Value
resultat=cells(columns("B").find(valeur,range(B3"),xlvalues).row,"M")

si on n'est pas sûr que la valeur ext dans B3:B23
if application.countif(range("B3:B23"),valeur)>0 then
    resultat=cells(columns("B").find(valeur,range(B3"),xlvalues).row,"M")
else 
     Msgbox valeur & "inconue, vbcritical
End if

0

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

Posez votre question
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 3
19 oct. 2011 à 17:30
on est sur que la valeur est connu dans le tableau car les valeurs de la combobox sort de ce meme tableau

j'ai donc pris la premiere solution

Dim valeur
    Dim resultat
    valeur = ComboBox1.value
    resultat = Cells(Columns("B").Find(valeur, Range("B3"), xlValues).Row, "M")
    MsgBox (resultat)


il m'écrit une erreur 92 variable objet ou variable bloc with non définit...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 307
Modifié par michel_m le 19/10/2011 à 17:41
heu, excuse moi.... B2 au lieu de B3
resultat = Cells(Columns("B").Find(valeur, Range("B2"), xlValues).Row, "M")

si ca ne marche pas
mettre un extrait du classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse
0
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 3
19 oct. 2011 à 17:44
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 307
19 oct. 2011 à 18:25
Dis donc, fais tu attention à ce que tu écris ?
tu écris:
colonne B : X38

regarde donc ce qu'il y a dans la colonne B....

Pas très sérieux ni sympa

ciao
0
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 3
20 oct. 2011 à 08:29
oups désole cette feuille est un copié coller d'un autre classeur et j'ai décaler les colonnes et je n'avais pas la bonne feuille sous les yeux

toutes mes excuses votre formule marche

Merci beaucoup
0
Kino76 Messages postés 86 Date d'inscription mardi 26 juillet 2011 Statut Membre Dernière intervention 15 décembre 2011 3
Modifié par Kino76 le 20/10/2011 à 16:05
Bonjour,

je me permet de revenir vers vous car meme en mettant la bonne colonne (la C)

resultat = Cells(Columns("C").Find(valeur, Range("C5"), xlValues).Row, "M")


j'ai une erreur 91 variable objet ou variable bloc with non définit...
0