Filtre excel sous VBA [Résolu]

Messages postés
9
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
1 août 2013
- 22 juil. 2013 à 16:13 - Dernière réponse :
Messages postés
9
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
1 août 2013
- 1 août 2013 à 18:02
Bonjour a tous , je vous remercie d'avance de vous pencher sur mon petit problème
Sous excel 2007 / 2010
Dans un fichier je dois filtrer la date sélectionnée a l'aide du calendrier de la boite outils VBA
le problème c'est que ça filtre mais ne trouve rien et me "masque" tout mon tableau.
Pouvez vous me dire ce qui cloche dans ce bout de code


Private Sub Calendar1_Click()
Dim Result As Date
ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2
Result = Calendar1.Value
ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2, Criteria2:=Array(2, Result)
End Sub
Afficher la suite 

Votre réponse

7 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 22 juil. 2013 à 18:31
0
Merci
Bonjour,
Result = Calendar1.Value
ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2, Criteria2:=Array(2, Result)


Je crois que tu ferais bien de te décider à ouvrir ton aide VBA sur le mot AutoFilter

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
- 22 juil. 2013 à 18:56
0
Merci
EZt pendant que tu y es (à consulter ton aide VBA) saisis cette occasion pour apprendre ce qu'est un Array (rubrique Array, fonction). Ce serait bien, après 3 ans d'apprentissage de VB !
Array(2, Result)
est un array et ne risque pas d'être un critère de filtre


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 23 juil. 2013 à 21:54
0
Merci
Bonjour,

Ton code devrait fonctionner à moins que le contrôle Calendar ne retourne pas une date valide.
As-tu essayé avec un MonthView ?
C'est ce que je viens d'essayer avec ton code et ça fonctionne très bien...


MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi
Messages postés
9
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
1 août 2013
- 25 juil. 2013 à 15:59
0
Merci
Merci a tout les 2 pour vos réponses
Après consultation de l'aide au sujet de AutoFilter rien de nouveau.
quand a Array c'est l'enregistreur automatique deVBA qui donne cette syntaxe .
J'ai aussi essayé celle Là sans succès
ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2, Criteria2:= Result
Le contrôle Calendar me retourne une date valide j'ai essayé dans "Un Range".
J'ai essayé plusieurs formats de date sans succès.
Donc retour au point de départ et la question reste posée
Merci d'avance
Jean
Commenter la réponse de cs_nebuleux
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 26 juil. 2013 à 14:37
0
Merci
As-tu essayé avec un MonthView ?
Commenter la réponse de cs_MPi
Messages postés
1838
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
15 novembre 2018
- 1 août 2013 à 12:22
0
Merci
Bonjour,

Après plusieurs tests, voici une macro qui fonctionne chez moi :
Private Sub Calendar1_Click()
    Dim Result As String
    ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2
    Result = Format(Calendar1.Value, "mm/dd/yyyy")
    ActiveSheet.Range("$A$4:$BB$5000").AutoFilter Field:=2, Operator:=xlFilterValues, Criteria2:=Array(2, Result)
End Sub


Donc il faut formater la date sous forme de chaine avec un format anglais. Et il faut préciser "Operator" dans Autofilter.

A+
Commenter la réponse de pilas31
Messages postés
9
Date d'inscription
vendredi 27 juin 2008
Dernière intervention
1 août 2013
- 1 août 2013 à 18:02
0
Merci
Merci pilas31 pour ta réponse je vais essayer dès demain au boulot.
L'autre solution proposée est un MonthView .Qu'est-ce?Comment cela se met il en oeuvre? Merci MPI.
Commenter la réponse de cs_nebuleux

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.