Filtre excel sous VBA

Résolu
cs_nebuleux Messages postés 9 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 1 août 2013 - 22 juil. 2013 à 16:13
cs_nebuleux Messages postés 9 Date d'inscription vendredi 27 juin 2008 Statut Membre 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

7 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2013 à 18:31
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 juil. 2013 à 18:56
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.
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
23 juil. 2013 à 21:54
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
0
cs_nebuleux Messages postés 9 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 1 août 2013
25 juil. 2013 à 15:59
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
26 juil. 2013 à 14:37
As-tu essayé avec un MonthView ?
0
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020
1 août 2013 à 12:22
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+
0
cs_nebuleux Messages postés 9 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 1 août 2013
1 août 2013 à 18:02
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.
0
Rejoignez-nous