Vlook up : Valeur recherchee et plage de données variables
Bonjour à tous,
Cela fait maintenant quelques jours que je cherche sans trouver comment coder une formule "Vlookup" avec une valeur recherchée et une plage de données variable. Je m'explique :
Tout d'abord j'ai deux fichiers :
- Fichier 1
- Fichier 2
Exemple:
Fichier 1 Fichier 2
1454995 1522643
1522643 1560139
1560139 1609959
Ici, j'aurais les deux dernières lignes de mon Fichier 1 qui seront validées.
Mes contraintes :
- La première ligne du tableau du Fichier 2 peut varier (il peut commencer à la ligne 8,9,10)
- Mon nombre de lignes du tableau du Fichier 2 peut varier
- Ma plage de données du tableau du Fichier 1 peut varier
La ou je bloque :
- Déclaration des variables du vlookup
- formule vlookup me donne des #N/A
Je suis loin d'être un expert en VBA, mon code est réalisé avec les moyens du bord...
Voici mon code ci dessous: (je vous mets aussi en pièce jointe deux fichiers exemple, la macro est dans le module 1 du fichier 1)
Sub testvlookup()
Dim TargetRange As Range, Dernligne As Integer, Lastligne As Integer, ValeurRecherchee As String
Workbooks("Fichier2").Activate
Dernligne = Worksheets("Feuillefichier2").Range("A" & Cells.Rows.Count).End(xlUp).Row
Select Case True
Case Is = Range("A7") = "exemple"
Set TargetRange = Range("A8:A" & Dernligne)
Case Is = Range("A8") = "exemple"
Set TargetRange = Range("A9:A" & Dernligne)
Case Is = Range("A10") = "exemple"
Set TargetRange = Range("A11:A" & Dernligne)
End Select
On Error GoTo MyErrorHandler:
Workbooks("Fichier1").Activate
Lastligne = Worksheets("Feuillefichier1").Range("A" & Cells.Rows.Count).End(xlUp).Row
ValeurRecherchee = "INDIRECT(ADRESSE(LIGNE()-1;COLONNE()))+1"
Range("B2") = Application.VLookup(ValeurRecherchee, TargetRange, 1, False)
MyErrorHandler:
If Err.Number = 1004 Then
MsgBox "Value not found"
End If
Range("B2").Select
Selection.AutoFill Destination:=Range("B2:B" & Lastligne)
End Sub
Merci d'avance pour votre expertise
- Messages
- 4'199
- Excel
- 2021 FR 64 bits
- Inscrit
- 13/06/2016
- Emploi
- bénévole associations Goutte d'Or
Bonjour,
Je ne vois pas pourquoi vous vous embarquez dans VBA.
ci-joint une solution simple sans VBA
C'est vrai que je n'ai pas précisé.
Je réalise cette macro dans le cadre d'optimisation d'activité. Je cherche à faciliter la réalisation d'une tâche, et cette macro fait partie d'un programme VBA.
J'ai extrait cette petite partie car c'est sur celle la que je bloque...