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
244

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16