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:
Merci à vous
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