Filtres élaborés Dynamiques

lepupu

XLDnaute Nouveau
Bonjour à tous,

Je suis face à un problème que je pensais beaucoup plus simple à résoudre que ce n'est en réalité. Et je n'ai pas trouvé de discussion à ce sujet.

J'ai un tableau de bases de données avec de très nombreux critères et je veux en extraire d'autres tableaux utilisant les mêmes données mais avec beaucoup moins de critères. Pour faire simple, mon tableau A (tableau général) a une trentaine de colonnes, je voudrais en extraire d'autres tableaux B, C, D avec des colonnes bien définies. J'ai essayé avec des tableaux croisés dynamiques, avec des groupes de travail ou des filtres élaborés mais aucun ne me convient parfaitement. Le plus proche de ce que je veux ce sont les filtres élaborés mais je n'arrive pas à actualiser les tableaux B, C et D quand je modifie quelque chose dans le A.

Que me conseillez-vous?

Merci de votre participation


Aurélien
 

James007

XLDnaute Barbatruc
Re : Filtres élaborés Dynamiques

Re,

Oui, la macro évènementielle est bien celle que tu cites ...

Concernant, la fonction décaler() ... tu peux regarder les explications en faisant F1 ...
Le principe de la définition dynamique, c'est que cela permet à la plage de grandir toute seule, si l'utilisateur ajoute des colonnes ou des lignes ...
et ne pas être contraint à chaque que de nouvelles données sont ajoutées de redéfinir la plage ...

A +
:)
 

lepupu

XLDnaute Nouveau
Re : Filtres élaborés Dynamiques

RE,

J'ai compris décaler. Cela te sert à sélectionner le tableau critère en entier en fonction de la taille du tableau.
Maintenant je regarde le code de ta macro. Il ne parle pas de "critère" qui est le nom que tu as donné au tableau mais "criteria" et je sais pas à quoi cela renvoi. Je ne l'ai pas trouvé. Pareil pour le range "extract" que je ne vois pas.
 

lepupu

XLDnaute Nouveau
Re : Filtres élaborés Dynamiques

Je me suis rendu compte de mon erreur mais je n'arrivais pas à supprimer le message..
Par contre tu pourrais me dire au sujet de "criteria" (nom dans le code) et "critère" (nom du tableau dans la feuille)? Pour Excel c'est la même chose?
 

James007

XLDnaute Barbatruc
Re : Filtres élaborés Dynamiques

Je me suis rendu compte de mon erreur mais je n'arrivais pas à supprimer le message..
Par contre tu pourrais me dire au sujet de "criteria" (nom dans le code) et "critère" (nom du tableau dans la feuille)? Pour Excel c'est la même chose?

Re,
Attention, dans ton code tu dois utiliser les noms des plages tels qu'ils sont définis dans ton fichier ... ils ont besoin d'être identiques pour que ton code VBA reconnaisse les plages ...

A +
:)

P.S. Félicitations pour tous tes progrès foudroyants ... :cool:
 

lepupu

XLDnaute Nouveau
Re : Filtres élaborés Dynamiques

Merci!
Tu prends la peine de m'expliquer et de répondre à mes questions. Du coup ça m'aide bien!
Juste une dernière question: comment cela se fait-il que ça marche alors que dans le fichier que tu as envoyé les noms ne sont pas les mêmes?
 

James007

XLDnaute Barbatruc
Re : Filtres élaborés Dynamiques

Re,

Mon Excel est en anglais, et ton Excel est en français ... du coup une traduction automatique a dû mal se dérouler ... mais l'essentiel, c'est que tu arrives à maitriser ton processus, pour être parfaitement autonome ...

A +
:)
 

lepupu

XLDnaute Nouveau
Re : Filtres élaborés Dynamiques

Bon j'avoue que je suis bluffé par ce truc de la traduction. Quand je mets extraction ou extract c'est la même chose pour lui.
En tout cas merci beaucoup, c'est vrai que j'ai énormément progressé d'un coup.
Je vais surement continuer à me balader sur le site pour arriver à comprendre le reste des formules. ça ressemble beaucoup à turbopascal, il me faut juste un peu de pratique.

A bientôt bon weekend.
 

lepupu

XLDnaute Nouveau
Re : Filtres élaborés Dynamiques

Bonjour,

C'est encore moi.
Je rencontre un problème assez récurrent où Excel n'arrive pas à exécuter le script.
Je n'arrive pas à déterminer le problème.

Ce qui se passe est assez surprenant, le script s'exécute parfaitement mais de temps en temps il ne marche plus. En général cela se passe après avoir modifié le tableau "input".

Le message d'erreur est:

Erreur d'exécution 1004
La méthode Advancefilter de type Range a échoué

Et dans le script du module, il me met en jaune:


Range("Input").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("DIR"), _
CopyToRange:=Range("DAF")

Avec une flèche au niveau de copy to range.

Auriez-vous une idée de la cause de ce problème?
Mon fichier est trop gros, je ne peux pas vous le mettre sur le forum, au pire je peux vous l'envoyer par mail.


Merci beaucoup.
 

James007

XLDnaute Barbatruc
Re : Filtres élaborés Dynamiques

Bonjour, :)

Pour éviter les éventuels bugs du filtre élaboré, et sans voir ton fichier, tu peux envisager deux pistes :

1. Ajouter une gestion de l'erreur, juste avant l'instruction du filtre élaboré:
VB:
On Error Resume Next
ou alors,

2. Si les erreurs sont dûes aux définitions des plages, comme la boîte de dialogue du filtre élaboré retient systématiquement les paramètres de la dernière requête, tu peux décider de maîtriser tes plages nommées, en t'inspirant du code suivant (pour le critère) :
VB:
Sub SupprimerPlageCritère()
   On Error Resume Next 'si le nom n'existe pas
    With ActiveWorkbook
       .Names("Critères").Delete
   End With
End Sub
et donc, avant de relancer un nouvelle requête, également de :
VB:
Sub AjouterPlageCritère()
    'créer ou recréer un nom de plage
    With ActiveWorkbook
       .Names.Add Name:="Critères", RefersTo:="=Critères!$A$1:$B$2"
   End With
End Sub

A +
:)
 

Discussions similaires

Réponses
40
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12