Probleme sur fonction vlookup sur VBA

camoy64

XLDnaute Nouveau
Bonjour à tous ,

J'ai un soucis sur mon code VBA suivant .

Code:
Sub recherche()
     Dim nom As String, prenom As String, upc As Integer

        nom = WorksheetFunction.VLookup("B3", "UA!B:G", 2, False)
        prenom = WorksheetFunction.VLookup("B3", "UA!B:G", 3, False)
        upc = WorksheetFunction.VLookup("B3", "UA!B:G", 5, False)
        
        MsgBox nom & " " & prenom & ", " & upc
        
End Sub

Ce que je veux c'est afficher dans un msg box le résultat de mon recherchev , c'est à dire que quand je met dans ma case B3 , un numéro de log qui sont compris obligatoirement entre 68000 et 69000 (ex: 68050 )
le reste des infos sont notifiés ci dessous avec une ligne de mon tableau .
exemple :

LOGS NOMSPRENOMSCOMPUPC
68020XERGERUAUPC28

donc quand je met dans ma case "B3" ,68020 , je clique sur mon bouton de macro(que j'ai crée et affecter cette macro vba ) , une msg box s'affiche avec
le nom ,le prénom et son UPC .
Or cela ne fonctionne pas , j'ai sois un message d'erreur style
"1004 impossible de lire la propriété vlookup de la classe worksheetfunction."

Merci de m'éclairer je débute dans VBA .

Cordialement .
 

Modeste

XLDnaute Barbatruc
Re : Probleme sur fonction vlookup sur VBA

Bonsoir camoy64 et bienvenue,

Accepterais-tu de prendre 3 minutes pour lire Lien supprimé, si en contrepartie nous pouvons t'assurer que tu gagneras un temps précieux, par ailleurs?

... Allez, 4 minutes maximum, c'est promis!
 

gilbert_RGI

XLDnaute Barbatruc
Re : Probleme sur fonction vlookup sur VBA

Bonjour

peut-être comme ceci

Code:
Sub recherche()
      Dim nom As String, prenom As String, upc As String
        nom = WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 2, False)
         prenom = WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 3, False)
         upc = WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 5, False)
         
        MsgBox nom & " " & prenom & ", " & upc
         
End Sub

ps: upc n'est pas un interger
 
Dernière édition:

camoy64

XLDnaute Nouveau
Re : Probleme sur fonction vlookup sur VBA

Bonjour modeste et Gilbert,
Merci tout d'abord pour avoir consulter mon post .
@ Modeste :
J' ai lu , cependant je n'ai rien appris de nouveau ,
Car en terme d'ecriture , de langage , et de respect
J'essaie d'etre le plus irréprochable possible sur tous les forums même si je suis loin d'être une bête en orthographe . ^^
Pour la recherche des messages je comprend mais est vrai que des fois on va faciliter la réponse la plus rapide possible car on a déjà essayer de chercher ( peut être mal ) mais sans résultat .

@ Gilbert j'ai tester aussi avec string ça change rien .
Et je me suis déjà posé la question mais je ne sais pas car j'ai aussi pour Info tester variant .
Donc ça marche pas même avec cette modification .

Cordialement camoy
 

Modeste

XLDnaute Barbatruc
Re : Probleme sur fonction vlookup sur VBA

Re-bonsoir camoy67,

Merci d'avoir pris le temps de lire :). Je n'ai rien à reprocher à tes explications, ni à ton sens de la politesse, Jusque là, si tout le monde pouvait en dire autant, ce serait encore plus formidable. La seule chose qu'à mon sens tu aurais pu ajouter était un extrait représentatif de ton fichier (sans données confidentielles)
La proposition de correction de Gilbert avait tout son sens, mais il y a d'autres sources d'erreur possibles et souvent, la meilleure façon de mettre le doigt dessus, ... c'est de voir le fichier! Il ne manquait donc presque rien ;)
 

camoy64

XLDnaute Nouveau
Re : Probleme sur fonction vlookup sur VBA

Merci beaucoup modeste ,

Pour le fichier , j'y est bien sur pensé mais c'est un fichier
De mon boulot que j'ai créé et il y a des données confidentiels donc je vais
En créer un factice pour le mettre en copie . Tout à l heure la je suis sur mon telephone^^

Sinon au delà de la forme du code est ce que j'ai été assez explicite
Sur le fond de mon résultat souhaité ?
Au cas ou :
J'aimerais faire apparaître dans un msg box
Les infos qui sont sur la même ligne (sur une page sur 6 colonnes )que
Celle communique dans une cellule (dans une autre page) à côté de mon bouton .
Concrètement le but de la macro est quand je dois chercher qui est la personne correspondant à son log .
Même but que la possibilité CTR + F mais dans une box .
Cordialement
 

camoy64

XLDnaute Nouveau
Re : Probleme sur fonction vlookup sur VBA

RE
gilbert_RGI,

C'est exactement ce que je cherche sauf que le bouton recherche
sera sur une autre feuille mais je l'ai adapté sans soucis.

Par contre est-ce que tu connaitrais une condition a mettre en cas ou le log n'est pas dans mon tableau .
car j'ai testé avec un log qui n'est pas dans mon tableau ex : 68060
et ça me remet l'erreur 1004.

par exemple que ça me mette un msg box "conseiller inexistant"
je vais tester avant et je reviens si j'y arrive pas .

en tout cas Merci beaucoup pour ta réactivité et la réponse à mon problème.

Cordialement .
 

camoy64

XLDnaute Nouveau
Re : Probleme sur fonction vlookup sur VBA

RE ,

je sais que normalement faut re-poster un autre message mais je pense qu'il est lié a mon sujet d'origine donc je me permet de continuer sur ce post , si besoin les Modos dites le moi je referai un nouveau post.


Bon j'ai testé donc avec des recherches un code mais ça marche pas .

Le voici :

Code:
Sub recherche()

If IsNumeric(Range("B3")) Then 'SI NUMERIQUE
      Dim nom As String, prenom As String, upc As String
      
      If Application.WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 2, False) <> "" Then 'SI N° existant
      
        nom = Application.WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 2, False)
         prenom = WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 3, False)
         upc = WorksheetFunction.VLookup([b3], Sheets("UA").Range("B:F"), 5, False)
         
        MsgBox nom & " " & prenom & ", " & upc
        
         Else 'SI N° inexistant
            MsgBox "Le log " & Range("B3") & " n'est pas un numéro existant !"
            Range("B3").ClearContents
        End If
       
    Else 'SI NON NUMERIQUE
        MsgBox "La valeur " & Range("B3") & " n'est pas valide !"
        Range("B3").ClearContents
    End If
End Sub

c'est dans la seconde condition que je pèche je sais pas comment mettre :
"si en faisant cette "recherchev" je trouve quelques chose faire la suite du code donc le message box avec infos sinon mettre "le log n'est pas un numéro existant""

ou alors en mettant je sais pas style si dans ma cellule B3 la valeur que je met est dans la feuille de ma recherche

Quelqu'un peut m'éclairer ?

Cordialement
 

Statistiques des forums

Discussions
311 720
Messages
2 081 915
Membres
101 837
dernier inscrit
Ugo