Bonjour a tous,

Comme le titre l'indique j'essaye de manipuler la fonction vlookup d'Excel;
au début je voulais récupérer le code via une macro auto d'excel, mais n'ayant aucune cohérence dans le code générée j'ai voulu la re-créé avec la fonction application.WorksheetFunction.vlookup or celle ci ne fonctionne pas.

mon environnement de travail: juste deux feuilles dans un meme classeur, je complete des infos de la feuil1 avec ce que je cherche dans la feuille 2, je reproduit la formule sur toute la colonne et je copie-colle spéciale les valeur dans cette meme colonne.

Je vous met mon code, peut etre ai-je oublié quelque chose:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
'les deux premiere fonctionne retourne simplement l'index de la derniere ligne utilisé de la feuille.
Public Function derniereLigneFeuil1() As Integer
    derniereLigneFeuil1 = Sheets("Feuil1").Range("A1").End(xlDown).Row
End Function
 
Public Function derniereLigneArbreService() As Integer
    derniereLigneArbreService = Sheets("Arbre_services").Range("A1").End(xlDown).Row
End Function
 
Public Sub azerty()
    With Application.WorksheetFunction
        'pour completer les Entité vides
        .VLookup Feuil1.Range("C2"), Sheets("Arbre_services").Range("D2:E" & derniereLigneArbreService), 2, False        
'Feuil1.Range("C2").FormulaR1C1 = "=VLOOKUP(RC[6],Service_hyper_libellserv_niv2!C[1]:C[2],2,FALSE)"
Feuil1.Range("C2").Select
        Selection.AutoFill Destination:=Feuil1.Range("C2:C" & derniereLigneFeuil1)
        Feuil1.Range("C2:C" & derniereLigneFeuil1).Copy
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Feuil1.Range("A1").Select
    End With
End Sub
La seconde methode qui est en commentaire est la methode générée automatiquement par Excel. Comment détermine t'ilRC[6] & C[1]:C[2] ?

Par avance merci