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
Partager