Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Filtre élaboré VBA

Florian53

XLDnaute Impliqué
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:
VB:
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

Merci à vous
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…