Afficher le résultat d'une recherchev dans une msgbox

Bonjour à tous,

j'ai eu beau chercher dans les sujets précédents, je n'ai pas trouvé de réponse (que j'imagine fort simple) à mon problème : je souhaiterais réaliser une recherchev dont le résultat apparaisse dans une msg box.

Pour l'instant, j'ai :

Sub Recherchev()

    Dim rech As String

        rech = FormulaLocal = "=RECHERCHEV(E3;A1:C13;2;FAUX)"

    MsgBox rech

End Sub

Mais cela affiche toujours "Faux" dans la msgbox.

Sauriez vous m'aider ?

Merci par avance !

Bonjour,

A tester et à adapter avec l'utilisation en sus d'une fonction personnalisée:

Public Sub Test() 
     msgbox VRecherche(E3;A1:C13)  
End Sub

Fonction personnalisée :

Option Explicit
Public Function VRecherche(ValCherchee, Plage, numC) As Variant
Dim resultat As Variant
    resultat = Application.VLookup(ValCherchee, Plage, numC, 0)
    If IsError(resultat) Then
        VRecherche = "pas trouvé"
    Else
        VRecherche = resultat
    End If
End Function

Bonjour

ou

Sub Recherchev()
    Dim rech As String
        rech = Application.WorksheetFunction.VLookup(Range("E3"), Sheets("Feuil1").Range("A1:C13"), 2, False)
    MsgBox rech
End Sub

Cordialement

297classeur1.zip (6.81 Ko)

Bonjour!

Je me permets de renter dans la conversation...

Est-il possible de mettre le résultat sous forme de lien hypertexte directement dans la MsgBox?

Comme ça si on clique dessus on pourrait accéder à un document....

Ou un mail? et alors Outllook s'ouvre pour envoyer un message à l'adresse correspondante^^?

Possible?

Merci d'avance....

Merci Jean Eric et Amadéus pour vos deux réponses.

J'ai utilisé la deuxième proposition, car plus simple et cela fonctionne bien.

Je peux désormais, après la saisie d'une valeur dans un inputbox, faire apparaître le résultat de la recherchev correspondant à la valeur saisie, dans une msgbox.

Je cherche maintenant à sécuriser la saisie : ne pas lancer de recherchev si la valeur ne correspond pas à une donnée de la base existante.

Voilà ce que j'ai pour l'instant :

Sub Recherchev()

    Dim rech As String, resultat As String 'déclaration de deux variables

        resultat = InputBox("Veuillez saisir le nom du contact recherché", "Recherche de contact") 'boite de dialogue pour saisie de la recherche
        rech = WorksheetFunction.VLookup(resultat, Sheets("Feuil2").Range("A1:C13"), 2, False) 'recherchev de valeur entrée dans la boite de dialogue

    If resultat <> "" Then 'si valeur non nulle : vérifier que la valeur saisie n'existe pas dans la base de donnée, sinon afficher le résultat de la recherchev
        If IsError(rech) Then
            MsgBox "la valeur entrée n'existe pas dans la base,"
        Else
        MsgBox rech
        End If
    End If

End Sub

Mais cela ne fonctionne pas. Ce message s'affiche lors de la saisie d'une valeur n'existant pas dans la base de données :

Erreur d'exécution '1004' :

Impossible de lire la propriété Vlookup de la classe WorksheetFunction.

Auriez vous une idée de correction ?

Merci beaucoup pour votre aide !

Re,

Ma proposition peut-être qui possède une gestion d'erreur?

Cdlt

Re,

pourrais tu me commenter ta solution ?

J'aimerais comprendre le processus pour bien l'adapter à ma situation.

Je te remercie par avance du temps que tu prendras pour moi.

Re,

La fonction personnalisée est la reproduction exacte de la fonction RECHERCHEV.

Elle peut être utilisée dans une feuille de calcul (comme une formule), ou dans une procédure VBA.

Elle intègre une gestion d'erreur pour éviter le #N/A qui peut-être source d'erreur dans une procédure (la réponse est alors : 'pas trouvé', dans l'exemple). Je pense que le code est compréhensible

Je ne sais si je suis très clair!

A te relire.

Rechercher des sujets similaires à "afficher resultat recherchev msgbox"