Etirer fonction recherchev sur VBA

Fermé
laura_92 - 20 avril 2015 à 14:12
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 20 avril 2015 à 14:48
Bonjour,

Toute nouvelle sur VBA, je rencontre quelques difficulties ...
J'ai realizer une recherchev et je voudrais l'étirer mais ça ne marche pas.
Est ce que quelqu'un aurait une idée ?

Je vous met le code ci dessous



Sub Macro4()
Range("G2").Select
ActiveCell = "=VLOOKUP(RC[-6],Feuil2!R6C5:R26C16,7,FALSE)"
Range("G2").Select
Dim DernLigne As Long
DernLigne = Range("G" & Rows.Count).End(xlUp).Row
Range("G2").AutoFill Destination:=Range("G2:G" & DernLigne)
End Sub


2 réponses

Bruce Willix Messages postés 11968 Date d'inscription mardi 24 mai 2011 Statut Contributeur Dernière intervention 12 juin 2018 2 590
20 avril 2015 à 14:15
Bonjour,

Le VBA c'est du code. On ne peut pas "étirer", il faut passer par des boucles, ou des IF/THEN, WHILE/DO etc...

Que veux tu faire ? Recopier ta formule de vlookup autant de fois qu'il y a d'éléments à chercher ?
0
Oui.
Le code marche et me donne bien le résultat que je cherche.
Je voudrais appliquer la meme formule pour toutes les lignes en dessous. C'est ce que j'ai essayé de faire avec " Range("G2").AutoFill Destination:=Range("G2:G" & DernLigne) "
Mais apparement je ne m'y prends pas correctement ...
Merci d'avane !!
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 avril 2015 à 14:30
Bonjour,
Simplement :
Sub Macro4()
Dim DernLigne As Long
DernLigne = Range("G" & Rows.Count).End(xlUp).Row
Range("G2:G" & DernLigne).FormulaR1C1 = "=VLOOKUP(RC[-6],Feuil2!R6C5:R26C16,7,FALSE)"
End Sub

0
ça ne fonctionne pas.
Comme précedemment, la formule s'applique correctement pour la cellule G2. Mais cette fois ci j'ai aussi un #N/A en G1
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 avril 2015 à 14:44
Pour que ça fonctionne, il faut que la colonne G ne soit pas vide !
si elle est vide, elle ne peut pas servir à mesurer la dimension du tableau avec DernLigne = Range("G" & Rows.Count).End(xlUp).Row
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
20 avril 2015 à 14:48
PS : si tu as #NA en G1 la formule à été appliquée de G1 à G2 et donc ça fonctionne !
0