[VBA] .find sur une partie des infos contenues dans une cellule

Bonsoir,

Pour rechercher des informations et les faire passer d'une feuille à l'autre j'utilise le code suivant :

   
Set ws4 = Worksheets("VNEI (Bilan)")
Set ws3 = Worksheets("VNEI (Impacts)")
lrws4 = ws4.Cells(Rows.Count, 1).End(xlUp).Row
lrws3 = ws3.Cells(Rows.Count, 1).End(xlUp).Row
  maximpct = [keepmaximpct]
  Set plg1 = ws3.Range("A1:A" & lrws3 + maximpct)
    With ws4
        For r = 2 To lrws4
            Set res = plg1.Find(.Cells(r, 1), LookAt:=xlWhole)
            If Not res Is Nothing Then
                .Cells(r, 5) = res.Offset(, 1)
            Else
                .Cells(r, 5) = "-"
            End If
        Next
    End With
End Sub

Ce code fonctionne bien si les informations contenues dans la cellule cible sont parfaitement identiques à celles contenues dans la cellule de recherche.

Mais si ce n'est pas le cas, est-il possible de trouver tout de même le résultat ?

Avec une formule de type : RECHERCHEV ça fonctionne ; donc peut-être avec VLOOKUP ? Mais cette fonction ne permet pas de faire de recherche "vers la gauche", et je crains que ça ne me pose problème plus tard.

Je joins un document Excel au besoin.

Le sub en question se trouve dans les modules ; il s'appelle : "rechdata"

Merci de votre attention.

Bonne soirée !

Bonjour,

Pour une recherche de correspondance partielle, il faut modifier le paramètre de la fonction .Find :

LookAt:=xlWhole --> LookAt:=xlPart

Bonsoir,

Merci du coup de main ! Je n'y faisais pas du tout attention...

Bonne soirée !

Bonsoir,

Merci du coup de main ! Je n'y faisais pas du tout attention...

Bonne soirée !

Pas de quoi, merci de ton retour et d'avoir passé le sujet en "résolu" !

Rechercher des sujets similaires à "vba find partie infos contenues"