Recherche comparaison et insertion
Bonjour a tous,
Débutant en VBA je rencontre un petit soucis, je suis conscient que mon problème est récurrent mais j'e n'arrive pas a le résoudre. Voici le topo:
Jai un classeur avec 3 feuilles.
La première contient toutes mes informations.
La seconde contient la liste des infos que je recherche
La dernière doit contenir le résultat de ma recherche.
Et je souhaite récupérer toutes les lignes de la feuille 1 qui correspondent aux données de la feuille 2 et les inserer dans la feuille 3.
Répéter l'opération jusqu'à la dernière ligne de la feuille 1.
Jai déjà rédiger une bonne partie de l'algo mais je n'arrive pas a atteindre mon objectif.
Ci-joint mon algo + Commentaire ainsi que le fichier.
Merci d'avance pour votre aide.
Sub RechercheCopierColler()
Dim der_ligne1 As Long
Dim der_ligne2 As Long
Dim der_lign3 As Long
Dim ws_1 As Worksheet
Dim ws_2 As Worksheet
Dim ws_3 As Worksheet
'Feuille contenant toutes les lignes que je dois parcourir
Set ws_1 = Workbooks("X.xlsx").Sheets("Sheet1")
'Feuille contenant la liste des code que je recherche
Set ws_2 = Workbooks("X.xlsx").Sheets("Liste code di")
'Feuille ou je dois insérer les résultats qui correspondent aux code rechercher
Set ws_3 = Workbooks("X.xlsx").Sheets("Liste ITV pour rapport")
'Récupérer la dernière ligne de chaque classeur.
der_ligne1 = ws_1.Cells(Rows.Count, 1).End(xlUp).Row 'définir la dernière ligne utilisée définir la dernière ligne utilisée du classeur Sheet1
der_ligne2 = ws_2.Cells(Rows.Count, 1).End(xlUp).Row 'définir la dernière ligne utilisée.Row 'définir la dernière ligne utilisée du classeur Liste code Di
'Recupere la premiere ligne vide du classeur Liste ITV ou je dois inserer les resultats
der_ligne3 = ws_3.Cells(Rows.Count, 1).End(xlUp).Row + 1
'Parcourir la feuille ListeCodeDi
For i = 2 To der_ligne2
'Parcourir les lignes du classeur Feuil1 pour rechercher toutes les lignes qui ont le codeDi de la feuille ListeCodeDi
For j = 2 To der_ligne1
'Je vérifie si la ligne actuel de la feuille Sheet1 correspond a la valeur de la ligne de ma feuille Liste code di
If ws_1.Cells(j, 5).Value = ws_2.Cells(i, 1).Value Then
'Si la valeur en dans la colonne 5 de la feuille Sheet 1 correspond a celle de la col 1 de Liste code di
'Alors je copie entièrement la ligne et la colle dans la première ligne dispo du classeur Liste ITV rapport.
'je répète l'opération pour chaque ligne suivante.
ws_3.Cells(der_ligne3, 1).Value = ws_1.Cells(j, 5).Value
Else
End If
Next j
Next i
MsgBox ("Traitement Terminer")
End Sub
Bonjour,
Une proposition Power Query, complément gratuit Microdsoft.
Cdlt.
Bonjour @Jean-Eric,
Merci pour votre participation.
J'ai résolu mon problème.
Cordialement.