Bonjour à tous,

Je viens vers vous car je n'arrive pas à faire fonctionner un filtre élaboré dans un code VBA:

Je dispose d'une macro qui me permet d'appeler un autre fichier Excel ( Source ) sur lequel se situe une Feuille ("BDD") que je voudrais importer dans mon fichier ( Destination ).

--> Pour une meilleur compréhension de mon problème j’appellerais le fichier de travail (Destination ) et le fichier que je charge pour contrôler la BDD ( SOURCE).

Dans mon classeur ( Destination ) je dispose déjà d'une BDD, que je voudrais mettre à jour tous les mois via un Classeur (Source). Il peut y avoir des lignes similaires entre les 2, c'est pour cela que je voudrais filtrer les données du fichier ( Source ) que je dispose déjà dans mon fichier (Destination) afin de les supprimer.

Puis par la suite, copiés les lignes restantes du fichier ( Source ) afin de les coller à la dernière lignes non remplie de la colonne "A" du fichier ( Destination).

je ne suis pas encore rendu au stade de copié collé les lignes, car je n'arrive pas à faire fonctionner le filtre élaboré.

Call PeriodTrié_BDD_réelle : Cette macro me permet d'extraire sans doublons les lignes de la base de données de mon classeur ( Destination ). Une fois la macro exécuté, elle nomme la plage de données "PériodTrié".

Je souhaiterais pouvoir filtrer le classeur ( Source ) avec en "CriteriaRange:=" le nom " PériodeTrié".
J'ai essayé avec cette méthode : "Destination.Range("A1:A19")" et "Destination.names("PériodTrié"), mais aucunes des 2 solutions ne fonctionne. Aucun filtre ne se met en place.

Pouvez vous m'indiquer ou se trouve l'erreur svp ?

Voici le code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Sub OuvertureFichiers(RepertoireFichier, NomFichier)
 
Application.ScreenUpdating = False
 
Call PeriodTrié_BDD_réelle ' Trie les périodes déjà présentes dans le classeur ( Destination ) 
 
 
   FichierP = ActiveWorkbook.Name ' Classeur Destination
 
Call SUPPRIMER_NOMS ' Supprime tous les noms du classeur
 
    ' Condition pour activer la macro
    If Continuer = True Then
    For Each Wb In Workbooks
            Select Case Wb.Name
                Case NomFichier
                    Wb.Activate
                    Continuer = False
                    Exit For
            End Select
    Next Wb
 
        If Continuer = True Then Workbooks.Open Filename:=RepertoireFichier & "\" & NomFichier ' Ouverture du fichier Source
 
 
    ' Ouverture et Mise en forme de la BDD
   Workbooks(NomFichier).Sheets("BDD").Activate
   If FilterMode = True Then ActiveSheet.ShowAllData
 
   Rows("1:1").Delete
'   Sheets("BDD").ShowAllData
 
   Call SupprLigne ' Sub pour effacer les données non utilisées
 
   Set Destination = Workbooks(FichierP).Sheets("Données")
 
   Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row).Select
With Selection
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Destination.Range("A1:A19"), Unique:=False
End With  
 
    Workbooks(NomFichier).Close False
 
    End Sub