Récupérer la position de la valeur avec .Find

Bonjour à tous,

Dans une macro, j'utilise la fonction .Find pour vérifier si ma valeur existe dans un Range déterminé.

Sauf que je souhaiterai récupérer la valeur de la cellule d'à côté si la valeur existe.

Est-il possible de récupérer la position de la valeur retrouvée avec .Find, s'il vous plaît?

Dans le fichier ci-joint, je souhaiterais récupérer dans la feuille 1, la valeur de la colonne B de la feuille 2 si le résultat est TRUE.

Merci par avance pour votre aide.

18book2.xlsm (20.58 Ko)

Bonjour,

Si j'ai bien compris ...

Un essai ...

Sub MatchName()
Dim x As Worksheet, y As Worksheet
Dim rng As Range
Dim iLast As Long
Dim iCounter As Integer

    Set x = Worksheets("Sheet1")
    Set y = Worksheets("Sheet2")

    iLast = x.Range("A" & Application.Rows.Count).End(xlUp).Row
    Application.ScreenUpdating = False

    For iCounter = 2 To iLast
        Set rng = y.Range("A:A").Find(x.Range("A" & iCounter).Value)
        If rng Is Nothing Then
            x.Cells(iCounter, 2).Value = "FALSE"
        Else
            x.Cells(iCounter, 2).Value = "TRUE"
            x.Cells(iCounter, 3).Value = y.Cells(rng.Row, "B").Value ' << ajout ici
        End If
    Next iCounter
    Application.ScreenUpdating = True
End Sub

On peut avoir :

rng.Row

rng.Column

rng.Address

ric

Bonjour,

à tester,

x.Cells(iCounter, 3).Value = y.Cells(rng.Row, 2).Value

Bonjour,

A adapter :

        .../....
        Set rng = y.Range("A:A").Find(x.Range("A" & iCounter).Value)
            If rng Is Nothing Then
                x.Cells(iCounter, 2).Value = "FALSE"
             Else
                x.Cells(iCounter, 2).Value = "TRUE"
                MsgBox rng.Offset(0, 1).Value  ' donne le contenu de la cellule décalée de 1 colonne vers 
                                          'la droite par rapport à la cellule  trouvée par le Find
             End If
           .../...

A+

Rechercher des sujets similaires à "recuperer position valeur find"