RechercheV par la gauche / VLookup

Résolu/Fermé
hawaïen Messages postés 50 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2018 - 6 juin 2018 à 13:19
hawaïen Messages postés 50 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2018 - 6 juin 2018 à 16:05
Bonjour,

j'ai deux onglets Feuil1 et Feuil2

Feuil1 contient une liste de noms rangés de A1:A10

Feuil2 contient un tableau (A1:B9) associant l'âge des personnes portant les noms


Je souhaite lorsqu'on double clique sur le nom d'une personne sous Feuil1 avoir un MsgBox affichant l'âge équivalent dans Feuil2.

Mon problème c'est que la colonne "âges" est à gauche de la colonne "noms" sous Feuil2

J'ai tenté le code suivant mais sans succès:



La recercheV ne semble pas fonctionner part la gauche.

Quelle solution existe-t-il?

Merci de vote aide,

3 réponses

f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 1 710
Modifié le 6 juin 2018 à 13:55
Bonjour,

La recercheV ne semble pas fonctionner part la gauche.
Si, mais la recherche se fait sur la premiere colonne de la plage, me semble-t-il.
perso, j'utilise ceci:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True
    With Worksheets("feuil2")
        age = .Cells(.Columns(2).Find(Target, .Cells(1, 2), , xlWhole).Row, 1)      '1 pour A mais vous pouvez utiliser des Offset
    End With
End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié le 6 juin 2018 à 14:22
bonjour Hawaien, F89

autre méthode se déclencha lors du "clic sur une cellule dans A&:10

macro a installer dans le module "feuil1"

Option Explicit
'------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("A1:J1")) Is Nothing Then

On Error GoTo inconnu
MsgBox Target & " est agé de " & Sheets(2).Columns("B").Find(Target).Offset(0, -1) & " ans"
Exit Sub
'gestionnaire erreur
inconnu:
MsgBox Target & " inconnu"
End If
End Sub




0
hawaïen Messages postés 50 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2018 3
6 juin 2018 à 16:05
Merci à vous deux !

J'ai réussi à obtenir le résultats souhaité même si la gestion d'erreur pourrait être optimisée je pense:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
Cancel = True

With Worksheets("Feuil2")

    On Error GoTo MyErrorHandler:

        aGe = .Cells(.Columns(2).Find(Target, .Cells(1, 2), , xlWhole).Row, 1)
        
        If aGe = "" Then
            MsgBox "Impossible de trouver l'âge de " & Target
            GoTo MyErrorHandler
        Else
            MsgBox "L'âge de " & Target & " est " & aGe
        End If
 
MyErrorHandler:
        If Err.Number = 1004 Then
            MsgBox "Impossible de trouver l'âge de " & Target
        ElseIf Err.Number = 13 Then
            MsgBox Target & " n'est pas dans la liste"
        End If
   
End With
    
End Sub


0