XL 2010 vba rechercher valeur selon condition

kan3pz

XLDnaute Occasionnel
Bonjour à tous,
J'ai de nouveau besoin de votre aide pour une macro.
Je souhaite faire l'équivalent d'un RECHERCHEV selon une condition.
Dans mon fichier test je souhaite récupérer le type (dans mon onglet correspondance) de mon code (colA) uniquement si mon code complet (colB) ne contient pas la lettre G.

Pour le moment je récupère le type de mon code mais je ne sais pas comment faire pour ajouter la condition :
Code:
Sub recherche()

Dim Rg As Range, Rg2 As Range

    For Each Rg In Range(Range("A2"), Range("A2").End(xlDown))
      Set Rg2 = Worksheets("Correspondance").Range("A:A").Find(what:=Rg)
      If Not Rg2 Is Nothing Then Rg.Offset(, 2) = Rg2.Offset(, 1)
   Next
  
End Sub

Merci de votre aide
 

Pièces jointes

  • test.xlsm
    19.5 KB · Affichages: 54

Papou-net

XLDnaute Barbatruc
Bonjour kan3pz,

Comme ceci, peut-être:

Sub recherche()

Dim Rg As Range, Rg2 As Range

For Each Rg In Range(Range("A2"), Range("A2").End(xlDown))
Set Rg2 = Worksheets("Correspondance").Range("A:A").Find(what:=Rg)
If Not Rg2 Is Nothing Then
If InStr(Rg.Offset(, 1), "G") = 0 Then
Rg.Offset(0, 2) = Rg2.Offset(, 1)
Else
Rg.Offset(0, 2) = 0
End If
End If
Next

End Sub

Cordialement.
 

Papou-net

XLDnaute Barbatruc
RE

Ou pour faire plus simple:

Sub recherche()

Dim Rg As Range, Rg2 As Range

For Each Rg In Range(Range("A2"), Range("A2").End(xlDown))
Set Rg2 = Worksheets("Correspondance").Range("A:A").Find(what:=Rg)
If Not Rg2 Is Nothing Then Rg.Offset(0, 2) = IIf(InStr(Rg.Offset(, 1), "G") = 0, Rg2.Offset(, 1), 0)
Next

End Sub

Cordialement.
 

Discussions similaires

Réponses
12
Affichages
253

Statistiques des forums

Discussions
312 327
Messages
2 087 315
Membres
103 515
dernier inscrit
Cherbil12345