Comparaison de 2 listes sur 2 fichiers différents
Bonjour à tous,
Je suis confronté à un problème VBA que je n'arrive pas à résoudre, malgré mes différentes recherches.
J'essaye de monter une macro qui me permettrait de comparer 2 listes de données sur 2 classeurs différents, en allant au préalable chercher l'un des 2 fichiers par une petite procédure de cherche.
Jusque là pas de soucis particulier.
Ce que je cherche à réaliser est je pense tout bête pour des pro du VBA :
La macro devrait comparer les 2 listes, puis ensuite copier les valeurs uniques de la première liste à la suite de la deuxième liste.
Cependant, les différentes macro que j'ai pu trouver ici et là comparent et copie sur un seul et même classeur.
J'essaye de l'adapter à ma situation, mais mes connaissances en codage sont plutôt limitées...
Pourriez vous me débloquer ce petit problème de syntaxe ou d'appel de fichier je pense ?
Merci par avance.
Ci-joint le lien avec les 2 classeurs : https://www.cjoint.com/c/DLEkfo8CjjR
Classeur Export : colonne source en colonne "A"
Classeur Suivi : colonne cible en colonne "I"
Ci-après la macro en question:
Sub MAJ_ADRESSES_OPTIMUM()
Dim lg&, f1 As Worksheet, f2 As Worksheet
Application.ScreenUpdating = False
Set f2 = Worksheets("Suivi D2")
On Error Resume Next
Set f1 = Workbooks.Open(RechercheFichier)
If (Err.Number > 0) Then
MsgBox "Erreur lors de l'ouverture du fichier"
Exit Sub
End If
f1.Activate
lg = Application.Max( _
f1.Range("a" & Rows.Count).End(xlUp).Row, _
f2.Range("a" & Rows.Count).End(xlUp).Row)
'--- filtre les manquants en feuille "Ordonnancer" ---
Range("FF10") = "=COUNTIF(Suivi D2!I10:I" & lg & ",A10)=0" 'critère
Range("A9:A" & lg).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("FF9:FF10"), CopyToRange:=Range("FE9:FE"), Unique:=False
'--- Complète ---
Range("FE10:FE" & [FE65000].End(xlUp).Row + 1) _
.Copy Destination:=f2.Range("I" & Rows.Count).End(xlUp)(2)
Columns("FE:FF").Clear
f2.Activate
End Sub
Function RechercheFichier() As String
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "fichier xls", "*.xls"
.Title = "Recherche de fichier"
'mettre le chemin du repertoire
.InitialFileName = "U:\DTS\Fixe-PDL-B-N\Orange\FTTH\FTTH VANNES\2-D2\2-SUIVI PROJET\Exports OPTIMUM\"
'repertoire fichier
Rep_Fichier = .InitialFileName
End With
If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)
If IsEmpty(fd.SelectedItems(1)) Then
MsgBox "Vous n'avez sélectionné aucun fichier"
NomFichier = Null
Else
NomFichier = fd.SelectedItems(1)
End If
RechercheFichier = NomFichier
End FunctionBonjour et bienvenue sur le forum
Un essai.
Te convient-il ?
tp://cjoint.com/?3LFoEwQ1gwN