recherchev dans macro

jpm2169

XLDnaute Junior
Bonjour,

J'essaie d'automatiser une création de tableau à partir de 2 autres.

Pour cela, je reprends des données du premier tableau et je m'en sers pour récupérer d'autres données du second tableau en m'aidant de la fonction recherchev :

=RECHERCHEV(A3;2ètableau!$A$2:$Q$5000;6;FAUX) par exemple

Je recopie vers le bas et j'obtiens des données correctes. Dans mon cas, je suis sur la colonne J.
Mais comment indiquer dans ma macro que je souhaite que la formule se recopie vers le bas jusqu'à la dernière cellule de la colonne "J" dont la cellule sur la même ligne de la colonne "A" n'est pas vide ?

En effet, si j'appuie sur les touches "Ctrl", "shift" et là flèche vers le bas, excel sélectionne la dernière cellule de la colonne portant le n° 65536 alors que mon tableau s'arrête à la ligne 358. Mais peut être que demain, ce sera la ligne 360...

Merci bien
 

RENAUDER

Nous a quitté
Repose en paix
Re : recherchev dans macro

Bonjour,
Par exemple en VBA
BD : plage de données nommée
Formule en B2
Recopie vers le bas de la colonne B sachant que la colonne A est complète
Code:
Sub RecopieversLeBas()
    'Soit la colonne B à recopier vers le bas et la colonne A complète
    Range("B2").Select
    ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],BD,3,FALSE)"
    Range([B2], [A65536].End(xlUp).Offset(0, 1)).Select
    Selection.FillDown
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                                                                    :=False, Transpose:=False
    Application.CutCopyMode = False
End Sub
 

jpm2169

XLDnaute Junior
Re : recherchev dans macro

Merci bien pour votre aide mais malheureusement, je n'ay arrive pas.

J'ai placé : "J" & Range("A65536").End(xlUp).Row de différentes façon dans la macro mais j'obtiens toujours "erreur de compilation".

Pouvez vous m'aider encore ?

Merci


Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ètableau!R[-1]C[-9]:R[5000]C[7],6,FALSE)"
Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ètableau!R2C1:R5000C17,6,FALSE)"
Range ("J3") & Range("A65536").End(xlUp).Row
Selection.FillDown
End Sub
 

jpm2169

XLDnaute Junior
Re : recherchev dans macro

Merci beaucoup

pour la colonne J et à partir de la ligne 3, je dispose donc, grâce à vous, de 2 méthodes :

Sub recherchev()
'
Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ÈTABLEAU!R[-1]C[-9]:R[5000]C[7],6,FALSE)"
Range([J3], [A65536].End(xlUp).Offset(0, 9)).Select
Selection.FillDown
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End Sub
--------------------------------------------------------------------------
Sub recherchev2()
'
Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ÈTABLEAU!R[-1]C[-9]:R[5000]C[7],6,FALSE)"
Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ÈTABLEAU!R2C1:R5000C17,6,FALSE)"
Range("J3:J" & Range("A65536").End(xlUp).Row).Select
Selection.FillDown

End Sub
--------------------------------------------------------------------------

La seconde montrant les formules, je la choisirais pour expliquer mais pour mon confort personnel, je choisirais la première.

Merci encore
 

jpm2169

XLDnaute Junior
Re : recherchev dans macro

Par contre, je viens de remarquer que le résulat était un peu différent mais cela est corriger par la suppression de 2 lignes dans la seconde méthode et voilàà ce que j'ai maintenant :

Sub recherchev2()
'
Range("J3").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-9],2ÈTABLEAU!R[-1]C[-9]:R[5000]C[7],6,FALSE)"
Range("J3:J" & Range("A65536").End(xlUp).Row).Select
Selection.FillDown

End Sub


Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 505
Messages
2 089 067
Membres
104 016
dernier inscrit
Mokson