[VBA] Probleme fonction VLookup

Résolu
Kino76 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   -  
Kino76 Messages postés 86 Date d'inscription   Statut Membre Dernière intervention   - 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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
Bonjour,

Et que dit l'erreur 2042 ?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 759
 
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   Statut Membre Dernière intervention   3
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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   Statut Membre Dernière intervention   3
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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   Statut Membre Dernière intervention   3
 
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 313
 
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   Statut Membre Dernière intervention   3
 
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   Statut Membre Dernière intervention   3
 
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