1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| Option Explicit
'J'utilise cette fonction pour faire la recherche d'un fichier à un autre. J'ai un fichier avec
'Des noms et des identifiants (exemple) et un autre avec des identifiants et des adresses.
'Avec cette macro, je peux aller chercher les adresses du deusième fichier et les ajouter a droite
'dans le premier fichier pour avoir nom, identifiant, adresse.
Sub RechercheDeuxFichiers()
Dim i As Long
Dim shDans As Worksheet
Dim shRecherche As Worksheet
Dim c As Range
Dim Recherche
'shDans correspond "dans quoi" on fait la recherche.
Set shDans = Workbooks("Liste # achem 31-01-2009.xls").Worksheets("Liste")
'shRecherche correspond à la recherche même.
Set shRecherche = Workbooks("CIBC0412 2008-12.xls").Worksheets("CIBC0412")
'Une boucle de la ligne 2 (tu peux changer la ligne de départ) à la dernière ligne
'remplie de la recherche à faire.
For i = 2 To shRecherche.Range("B65536").End(xlUp).Row
' Ce que je recherche. Le 2 est pour la colonne recherché (ici mes identifiant de mon premier fichier.
Recherche = shRecherche.Cells(i, 2)
' Facultatif, Si la recherche est vide, passe à la prochaine ligne.
If Recherche <> "" Then
' Si tu ne connais pas le With, va voir l'aide.
' Mon range B:B, il fait la recherche dans cette colonne (identifiants du deuxieme fichier).
With shDans.Range("B:B")
' Set c l'emplacement trouvé de la recherche (un Range)
Set c = .Find(Recherche, LookIn:=xlValues)
' Si c n'est pas rien, alors je prends la ligne de l'emplacement trouvé et
' l'utilise pour remplir mon champ dans ma feuille recherche.
' Copie et colle l'adresse du deuxième fichier qui correspond à l'identifiant correspondant
' au premier fichier dans la colonne 3.
If Not c Is Nothing Then
shRecherche.Cells(i, 3) = shDans.Cells(c.Row, 2)
' si pas trouvé, alors il inscrit.
Else
shRecherche.Cells(i, 3) = "pas trouvé"
End If
' renvoie c nothing pour initialiser (pas certain que c'est obligatoire).
Set c = Nothing
End With
End If
Next i
End Sub |
Partager