VBA problème avec Function.VLookup

Arpette

XLDnaute Impliqué
Bonjour à toutes et tous,

je fais une rechercheV avec la Function.VLookup, mais elle renvoie toujours faux.
Merci de votre aide, je joint le code je n'arrive pas à accéder aux pièces jointes. Ah si c'est bon.
@+
Code:
'On recherche les OA-Line SAP communes entre Step 1 et Open Orders
 
With Worksheets("Step 1")
     'g = OA-Line
     Set g = .Range("I" & .Range("I65536").End(xlUp).Row)
End With

With Sheets("Open Orders")
    'Plage = OA-Line
     Set Plage = .Range("A2:K" & .Range("A65536").End(xlUp).Row)
 
 On Error Resume Next
    Do While g.Row > 1
         
         h = WorksheetFunction.VLookup(g, Plage, 10, True)
             Set g = .Find(h)
             If g = h Then
                g(1, 3) = h 'Si trouvé n° PO
                Else
                g(1, 3) = "" 'Si pas trouvé vide
             End If
            
     Set g = g(0, 1) ' Recule d'une ligne
    
    Loop
    
End With
 

Pièces jointes

  • Thierry_3.xls
    155 KB · Affichages: 49

titiborregan5

XLDnaute Accro
Re : VBA problème avec Function.VLookup

Bonjour Arpette, le forum,

tu veux "vlookuper" sur quoi?
j'ai pas bien saisi tes éléments de recherche ni ta plage...
ton g que tu recherches me parait "figé" (je n'ai pas regardé tout ton code!)
 
Dernière édition:

Arpette

XLDnaute Impliqué
Re : VBA problème avec Function.VLookup

Le résultat en colonne K feuille Step 1
Code:
g(1, 3) = h 'Si trouvé n° PO
c'est OK.

Valeurs cherchées colonne I feuille Step 1
Dans colonne A de la feuille Open Order
La valeur à renvoyer colonne K feuille Open Order

Voila, j'espère que c'est plus clair
Merci de ton aide
@+
 

titiborregan5

XLDnaute Accro
Re : VBA problème avec Function.VLookup

Re,
j'ai refait une boucle car la tienne ne me parlait pas...

Je t'ai mis un if iserror pour que tu puisses modifier comme tu veux les #N/A.
En espérant que ça t'aille:

le code
Code:
Sub recherchev()
With Sheets(2)
For i = 2 To 6
a = Application.VLookup(.Cells(i, 9), Sheets(1).Range("a1").CurrentRegion, 10, False)
If IsError(a) Then
.Cells(i, 11) = "vide"
Else
.Cells(i, 11) = a
End If

Next
End With

End Sub

A+
 

Arpette

XLDnaute Impliqué
Re : VBA problème avec Function.VLookup

Bonsoir Titi,
merci pour ton aide, mais j'ai opté pour ce code,

Code:
'Affectation de la variable c à la colonne I de la feuille "Step 1"
Set c = Worksheets("Step 1").Range("I" & Worksheets("Step 1").Range("I65536").End(xlUp).Row)
Do While c.Row > 1

  With Worksheets("Open Orders").Range("A2:A" & Worksheets("Open Orders").Range("A65536").End(xlUp).Row)
    Set d = .Find(c)
        If Not d Is Nothing Then
            Départ = d.Address
                       
            Do
                'n° de ligne
                c(1, 4) = d(1, 11)
                Set d = .FindNext(d)
            Loop While Not d Is Nothing And d.Address <> Départ
             
        End If
  End With
   
Set c = c(0, 1)

Encore merci,
@+
 

Discussions similaires

Réponses
1
Affichages
168
Réponses
0
Affichages
154
Réponses
4
Affichages
213

Statistiques des forums

Discussions
312 275
Messages
2 086 707
Membres
103 377
dernier inscrit
fredy45