[VBA] Filtrer sur la date du jour

R@chid

XLDnaute Barbatruc
Bonsoir @ tous,
Ce R@chid ne va pas cesser de poser des questions VBA, quand est-ce qu'il va apprendre ?? :p
J'ai un tableau de données avec des dates, et j'aimerai que via un bouton faire un filtre sur la date du jour.
Voir PJ

Merci
 

Pièces jointes

  • XLD_FiltrerDateJour.xlsx
    21.9 KB · Affichages: 87
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Bonsoir @ tous,

Chère Chris :eek:,
Merci, pour le fait de faire réapliquer, c'est ce que j'ai l'habitude de faire après un tri personnalisé, mais il faut noter que si on efface le filtre il faut revenir faire le filtre à nouveau pour pouvoir procéder à la réaplication.

Staple,
Merci l'ami :)
Pour ce qui est affichage personnalisé, je ne trouve pas que c'est pratique, comme c'est différent sur XL2010 comme on n'a pas le menu déroulant comme sur XL2013, on a juste une petite fenêtre qui s'ouvre en proposant les affichages personnalisés enregistrés.

Pour les autres VBAistes, merci infiniment les amis, j'ai maintenant l’embarras du choix, j'ai vu et j'ai aimé vos propositions, et je vais essayer de revoir plus tard pour bien comprendre les choses.

Merci @ tous.

C'est super ce forum :rolleyes:

@ + +
 

job75

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Bonjour le fil, le forum,

Si un filtre automatique est appliqué ou s'il n'y a aucune date il est mieux de ne pas utiliser End(xlUp) pour déterminer la dernière cellule :

Code:
With ThisWorkbook.Sheets("Base")
  Set r = .Range("B5:B" & Application.Match _
    (IIf(Application.Count(.[B:B]), 9 ^ 9, "zz"), .[B:B]))
End With
Edit : j'ajoute aussi dans la macro Workbook_Open :

Code:
Me.Saved = True 'évite l'invite à la fermeture
Fichier (2).

A+
 

Pièces jointes

  • Filtre(2).xls
    107 KB · Affichages: 71
  • Filtre(2).xls
    107 KB · Affichages: 61
  • Filtre(2).xls
    107 KB · Affichages: 63
Dernière édition:

Christian0258

XLDnaute Accro
Re : Filtrer sur la date du jour

Bonjour à tout le forum,

Je suis interressé par ce filtre automatique sur des dates en colonnes sur une année.
Mais comment trier ces dates (colonne A) non pas par jour, mais par mois ?

Merci pour votre réponse.

Bien à vous.
Christian
 
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Bonjour à tous,
Salut les amis,

Le ficihier de Job75 "arrangé" pour les besoins de l'ami Christian.

A++ les amis
A+ à tous

Edition : Oups j'avais lu filtre par Jour....
 

Pièces jointes

  • JC Filtre sur Jour.xls
    121 KB · Affichages: 66
  • JC Filtre sur Mois.xls
    120.5 KB · Affichages: 66
Dernière édition:

Christian0258

XLDnaute Accro
Re : Filtrer sur la date du jour

Re, le forum l'ami Jean-Claude, Job75,

Merci pour le fichier et les explications.

Mon problème c'est que mon calendrier annuel dates est en colonne A (A5) et qu'il faudrait que je revois entièrement la structure de mon fichier, pour appliquer ton exemple Jean-Claude. Donc pour l'instant pas de solution...

Merci pour votre aide.
Bien à vous,

Christian
 

job75

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Re,

Si l'on veut que les listes soient correctement triées, faire précéder le texte par un nombre.

Fichiers joints.

A+
 

Pièces jointes

  • JC Filtre sur Jour(1).xls
    120.5 KB · Affichages: 49
  • JC Filtre sur Mois(1).xls
    120.5 KB · Affichages: 56

Christian0258

XLDnaute Accro
Re : Filtrer sur la date du jour

Re, le forum,

C'est bon pour moi, j'ai adapté mon fichier...
Merci à tous.

Bien à vous,
Christian

P.S : pourquoi avec ce filtre cette formule : expl "=SOUS.TOTAL(9;$D$5:$D$370)" ne fonctionne pas ???
 
Dernière édition:

job75

XLDnaute Barbatruc

Pièces jointes

  • Filtre par mois sur colonne A(1).xls
    110 KB · Affichages: 61
Dernière édition:

JCGL

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Bonjour à tous,

Christian : je te conseille la fonction AGREGAT :

AGREGAT (AGREGAT, fonction)


Renvoie un agrégat dans une liste ou une base de données. La fonction AGREGAT peut appliquer diverses fonctions d’agrégation à une liste ou à une base de données en proposant l’option d’ignorer les lignes masquées et les valeurs d’erreur.

Syntaxe

Forme référentielle
AGREGAT(no_fonction, options, réf1, [réf2], …)

Forme matricielle
AGREGAT(no_fonction, options, matrice, [k])

La syntaxe de la fonction AGREGAT contient les arguments suivants :
##no_fonction Obligatoire. Un nombre compris entre 1 et 19 et incluant ces valeurs qui spécifie la fonction à utiliser.



no_fonction

Fonction

1 MOYENNE
2 NB
3 NBVAL
4 MAX
5 MIN
6 PRODUIT
7 ECARTYPE.STANDARD
8 ECARTYPE.PEARSON
9 SOMME
10 VAR.S
11 VAR.P.N
12 MEDIANE
13 MODE.SIMPLE
14 GRANDE.VALEUR
15 PETITE.VALEUR
16 CENTILE.INCLURE
17 QUARTILE.INCLURE
18 CENTILE.EXCLURE
19 QUARTILE.EXCLURE
##Options Obligatoire. Valeur numérique qui détermine les valeurs à ignorer dans la plage d’évaluation de la fonction.



Option

Comportement

0 ou omis Ignorer les fonctions SOUS.TOTAL et AGREGAT imbriquées
1 Ignorer les lignes masquées, ainsi que les fonctions SOUS.TOTAL et AGREGAT imbriquées
2 Ignorer les valeurs d’erreur, ainsi que les fonctions SOUS.TOTAL et AGREGAT imbriquées
3 Ignorer les lignes masquées, les valeurs d’erreur, ainsi que les fonctions SOUS.TOTAL et AGREGAT imbriquées
4 Ne rien ignorer
5 Ignorer les lignes masquées
6 Ignorer les valeurs d’erreur
7 Ignorer les lignes masquées et les valeurs d’erreur
##Réf1 Obligatoire. Premier argument numérique des fonctions qui acceptent plusieurs arguments numériques pour lesquels vous souhaitez obtenir la valeur d’agrégation.
##Réf2,... Facultative. Arguments numériques compris entre 2 et 253 pour lesquels vous souhaitez obtenir la valeur d’agrégation.

Pour les fonctions qui acceptent une matrice, réf1 est une matrice, une formule matricielle ou une référence à une plage de cellules pour lesquelles vous souhaitez obtenir la valeur d’agrégation. Réf2 est un deuxième argument obligatoire pour certaines fonctions. Les fonctions suivantes exigent un argument réf2 :



Fonction

GRANDE.VALEUR(matrice,k)
PETITE.VALEUR(matrice,k)
CENTILE.INCLURE(matrice,k)
QUARTILE.INCLURE(matrice,quart)
CENTILE.EXCLURE(matrice,k)
QUARTILE.EXCLURE(matrice,quart)

Remarques

no_fonction :
##Dès que vous tapez l’argument no_fonction lorsque vous entrez la fonction AGREGAT dans une cellule de la feuille de calcul, la liste de toutes les fonctions que vous pouvez utiliser en tant qu’arguments s’affiche.

Erreurs :
##Si un deuxième argument de référence est requis sans être fourni, AGREGAT renvoie une erreur #VALEUR!.
##Si une (ou plusieurs) référence est une référence 3D, la fonction AGREGAT renvoie la valeur d’erreur #VALEUR!.

Type de plage :
##La fonction AGREGAT est conçue pour les colonnes de données ou les plages verticales. Elle n’est pas conçue pour les lignes de données ou les plages horizontales. Par exemple, lorsque vous calculez le sous-total d’une plage horizontale à l’aide de l’option 1, comme AGREGAT(1, 1, réf1), le fait de masquer une colonne n’a aucun effet sur la valeur de somme d’un agrégat. Toutefois, le fait de masquer une ligne d’une plage verticale n’a aucun effet sur l’agrégat.

A++
A+ à tous

Edition : Aide SOUS.TOTAL :

[h=1]SOUS.TOTAL (SOUS.TOTAL, fonction)[/h]
Cet article décrit la syntaxe de la formule et l’utilisation de la fonction (fonction : formule pré-écrite qui prend une ou plusieurs valeurs, exécute une opération, puis renvoie une ou plusieurs valeurs. Utilisez des fonctions pour simplifier et raccourcir des formules sur une feuille de calcul, notamment celles qui effectuent des calculs longs et complexes.) SOUS.TOTAL dans Microsoft Excel.
[h=2]Description[/h]Renvoie un sous-total dans une liste ou une base de données. Il est généralement plus facile de créer une liste comportant des sous-totaux à l’aide de la commande Sous-total du groupe Contour dans l’onglet Données de l’application de bureau Excel. Une fois cette liste de sous-totaux créée, vous pouvez la modifier en changeant la fonction SOUS.TOTAL.
[h=2]Syntaxe[/h]
SOUS.TOTAL(no_fonction,réf1,[réf2],...)La syntaxe de la fonction SOUS.TOTAL contient les arguments (argument : valeur qui fournit des informations à une action, un événement, une méthode, une propriété, une fonction ou une procédure.) suivants :
  • no_fonction Obligatoire. Représente le nombre compris entre 1 et 11 (comprend les valeurs masquées) ou 101 et 111 (ignore les valeurs masquées) indiquant quelle fonction utiliser pour calculer les sous-totaux d’une liste.
no_fonction
(comprend les valeurs masquées)
no_fonction
(ignore les valeurs masquées)
Fonction
1101MOYENNE
2102NB
3103NBVAL
4104MAX
5105MIN
6106PRODUIT
7107ECARTYPE
8108ECARTYPEP
9109SOMME
10110VAR
11111VAR.P

  • réf1 Obligatoire. Première référence ou plage nommée dont vous souhaitez calculer le sous-total.
  • réf2;... Facultatifs. Plages ou références nommées 2 à 254 dont vous souhaitez calculer le sous-total.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Filtrer sur la date du jour

Re,

Je ne comprends pas, sur Excel 2003 SOUS.TOTAL(109;xxx) fonctionne très bien.

Voir ce fichier (2) et la cellule F2.

Par ailleurs, sur ce même fichier, après utilisation des nombres dans la liste des mois, je les supprime :

Code:
'-----
  Set d = CreateObject("Scripting.Dictionary")
  For Each r In r
    If r <> "" Then d(Format(r, "mm mmmm")) = ""
  Next
  a = d.keys
  tri a, 0, UBound(a)
  For i = 0 To UBound(a)
    a(i) = Application.Proper(Mid(a(i), 4))
  Next
  .ListBox1.List = a
A+
 

Pièces jointes

  • Filtre par mois sur colonne A(2).xls
    112 KB · Affichages: 61

Discussions similaires

Réponses
8
Affichages
220
Réponses
5
Affichages
189

Statistiques des forums

Discussions
312 215
Messages
2 086 333
Membres
103 188
dernier inscrit
evebar