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:
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] ?
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
Par avance merci
Partager