XL 2016 problème de filtre

Dranreb

XLDnaute Barbatruc
Bonjour à tous.
Jai une petite question subsidiaire, qu 'elle est la différence entre installer un code dans un module et un onglet de classeur (visualiser le code)
Un module standard est fait pour contenir des procédures à lancer, dont certaines peuvent être affectées à des objets de formulaire. Les éléments y étant déclarés Public sont connus dans tout le projet VBA et ne doivent être déclarés qu'à un seul endroit sous un certain nom.
Un module objet est fait pour contenir des procédures évènement de l'objet auquel il est attaché, et d'éventuels objets ActiveX qui y sont implantés. Les éléments déclarés Public ne sont connu qu'en tant que propriétés de cet objet, mais peuvent être définis avec le même nom dans différents objets.
Les deux sortes de modules peuvent quand même aussi contenir des procédures Private qui ne seraient invoquées que par les autres procédures du module mentionnées ci dessus.
 

jean marc1234

XLDnaute Occasionnel
Re

@jean marc1234

Tu change juste les dates et le critère dans la feuille filtre, c'est tout; tu ne touche plus à rien.
Re, ont d'accord. ben désolé sa fonctionne que si par exemple je tape 01/01/2016 - 31/12/2020
si je veux sélectionner sur une année. Par exemple 01/01/2020-31/12/2020 la sa fonctionne pas.
et je voudrais pourvoir faire ceci pour limiter les erreurs.
Et t'il possible de faire cela? ou alors puis je supprimer le premier critère de date, qui du coup sert a rien.
 

jean marc1234

XLDnaute Occasionnel
Bonjour à tous.
Un module standard est fait pour contenir des procédures à lancer, dont certaines peuvent être affectées à des objets de formulaire. Les éléments y étant déclarés Public sont connus dans tout le projet VBA et ne doivent être déclarés qu'à un seul endroit sous un certain nom.
Un module objet est fait pour contenir des procédures évènement de l'objet auquel il est attaché, et d'éventuels objets ActiveX qui y sont implantés. Les éléments déclarés Public ne sont connu qu'en tant que propriétés de cet objet, mais peuvent être définis avec le même nom dans différents objets.
Les deux sortes de modules peuvent quand même aussi contenir des procédures Private qui ne seraient invoquées que par les autres procédures du module mentionnées ci dessus.
BONJOUR et merci dranreb
Bonjour à tous.
Un module standard est fait pour contenir des procédures à lancer, dont certaines peuvent être affectées à des objets de formulaire. Les éléments y étant déclarés Public sont connus dans tout le projet VBA et ne doivent être déclarés qu'à un seul endroit sous un certain nom.
Un module objet est fait pour contenir des procédures évènement de l'objet auquel il est attaché, et d'éventuels objets ActiveX qui y sont implantés. Les éléments déclarés Public ne sont connu qu'en tant que propriétés de cet objet, mais peuvent être définis avec le même nom dans différents objets.
Les deux sortes de modules peuvent quand même aussi contenir des procédures Private qui ne seraient invoquées que par les autres procédures du module mentionnées ci dessus.
bonjour et merci dranreb
 

Lone-wolf

XLDnaute Barbatruc
Re

@jean marc1234

Et dans la colonne validité de source 2, ou est-ce que tu vois une date avec 2020??? :confused:o_O:eek:

Prend ce fichier, j'ai modifié la source de la liste qui est source1. Si tu as d'autres niveaux à ajouter c'est dans cette feuille qu'il faudra le faire.
 

Fichiers joints

Dernière édition:

Staple1600

XLDnaute Barbatruc
Re

@jean marc1234
Voir la copie d'écran
(j'ai masqué des colonnes jute pour que l'image soit moins grande)
0102JeanMarc.jpg
Donc si tu mets bien les formules et les intitulés (et ce dans les bonnes cellules)
Que tu mettes le code de macro dans le code de la feuille filtre
( je la remets ci-dessous)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range, crit As Range
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) And Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
Set p = Range("filtre!$B$10:$E$10")
Set crit = Feuil4.Range("source2!$F$1:$H$2")
Sheets("source2").Range("TableauSource[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=p, Unique:=False
End Sub
Alors cela doit fonctionner ;)

PS: Evidemment c'est à tester tel quel sur le même fichier que j'ai utilisé
(à savoir comme je l'ai déjà précisé le fichier du post de youky(BJ) => message#4 )
 

jean marc1234

XLDnaute Occasionnel
Re

@jean marc1234
Voir la copie d'écran
(j'ai masqué des colonnes jute pour que l'image soit moins grande)
Voir la pièce jointe 1015319
Donc si tu mets bien les formules et les intitulés (et ce dans les bonnes cellules)
Que tu mettes le code de macro dans le code de la feuille filtre
( je la remets ci-dessous)
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim p As Range, crit As Range
If Target.Count > 1 Then Exit Sub
If Intersect(Target, Range("C7:E7")) Is Nothing Then Exit Sub
If Not IsDate([C7]) And Not IsDate([D7]) Then Exit Sub
If [E7] = "" Then Exit Sub
[B11:E1000].ClearContents
Set p = Range("filtre!$B$10:$E$10")
Set crit = Feuil4.Range("source2!$F$1:$H$2")
Sheets("source2").Range("TableauSource[#All]").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=crit, CopyToRange:=p, Unique:=False
End Sub
Alors cela doit fonctionner ;)

PS: Evidemment c'est à tester tel quel sur le même fichier que j'ai utilisé
(à savoir comme je l'ai déjà précisé le fichier du post de youky(BJ) => message#4 )
Re,
merci à toi
 

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
Avec les formules, je n'ai pas de doublons dans Données/Validation

EDITION: Je me suis basé sur le fichier de youky(Bj) et dans son code, il y avait Feuil4
(qui correspond à la feuille source2)

Le principal c'est que la macro fonctionne ;)

Ensuite, si les feuilles ne sont pas les bonnes, il suffit de corriger le code ;)
 

jean marc1234

XLDnaute Occasionnel
Re

@Lone-wolf
Avec les formules, je n'ai pas de doublons dans Données/Validation

EDITION: Je me suis basé sur le fichier de youky(Bj) et dans son code, il y avait Feuil4
(qui correspond à la feuille source2)

Le principal c'est que la macro fonctionne ;)

Ensuite, si les feuilles ne sont pas les bonnes, il suffit de corriger le code ;)
merci merci
 

Staple1600

XLDnaute Barbatruc
Re

@Lone-wolf
Je viens de tester ton fichier
Donc c'est bien source2

PS: Bien vu le raccourcissement de la formule de dédoublonnage (en colonne E) ;)

NB: Ma référence à Zorro (c'était pour le masque pas pour son épée ;) )
(et de mémoire c'était dans un autre fil, non ?)
 

Lone-wolf

XLDnaute Barbatruc
Re Jean Marie

@Staple1600 :
et de mémoire c'était dans un autre fil, non ?
Oui, c'est juste. C'était juste un clin d'oeil. ;) Pour la feuille source, vu que tu as parlé des formules, et bien, j'ai modifié en conséquence.

Bientôt 60 messages pour qu'il comprenne.
 
Dernière édition:

Discussions similaires


Haut Bas