Automatiser une recherche d'occurence entre deux dates.

Mattjans

XLDnaute Nouveau
Bonjour,

Débutant en macro Excel, je me retrouve face à un problème abyssal comparé à mes compétences du moment. Est-ce que quelqu'un saura me faire franchir le cap?

J'ai extrait la phase qui me pose quelques problèmes dans la pièce jointe ci-dessous pour faciliter l'explication.

L'objectif recherché:
Je pars d'une colonne qui ressense des dates.
A partir d'une date entrée, je cherche à filtrer la colonne entre la date moins 8 et moins 1 jour.
L'objectif final est de compter le nombre de lignes entre ces deux dates et de retourner cette valeur comme variable.

Les problèmes:

1- Dans la partie où je filtre, je ne sais pas comment introduire les variables pour qu'elles soient comprises.
Selection.AutoFilter Field:=1, Criteria1:= "<" Date_debut, Operator:=xlOr, _
Criteria2:= ">" Date_fin
J'ai essayé de mettre des guillements un peu dans tous les sens, mais rien ne semble fonctionner. Comment gérer les "" ?...

2- Je n'ai pas trop le choix dans le type de date de la colonne de départ (jj/mm/aaaa hh:mm). Or, si je remplace Date_debut et Date_fin par des constantes type jj/mm/aaaa, la zone filtrée est vide alors qu'elle devrait comporter des éléments.
Comment dois-je gérer les formats?

3- Pour prendre un peu d'avance: Je n'ai pas encore eu trop l'occasion de me pencher sur la question du compte du nombre de ligne ainsi isolées. Je faisais avec le compeur automatique que l'on peut trouver dans la barre en bas à droite de la fenêtre Excel. Pour la macro, je pensais utiliser la fonction Nb.Si d'Excel, mais dans les Macros, je ne suis pas sûr de savoir comment appeler cette fonction. J'ai en tête un truc du genre:
Nb_Lignes = xlNb.Si(selection;"<>")
Mais je crains que cela prenne en compte même les parties masquées par le filtre.
L'idée est de trouver un moyen de faire comme le compteur.
Si quelqu'un a une solution, je suis preneur!

Regarde la pièce jointe Classeur1.zip

Merci d'avance aux âmes charitables de me tirer de cette impasse.

MJ
 

Pièces jointes

  • Classeur1.zip
    17.3 KB · Affichages: 58
  • Classeur1.zip
    17.3 KB · Affichages: 51

Robert

XLDnaute Barbatruc
Repose en paix
Re : Automatiser une recherche d'occurence entre deux dates.

Bonjour Mattjans, bonjour le forum,

Sans avoir testé, peut-être comme ça :
Code:
Selection.AutoFilter Field:=1, Criteria1:=">" & Date_debut, Operator:= xlAnd, Criteria2:="<" & Date_fin
Car si tu veux entre deux dates il me semble qu'il faudrait que ce soit supérieur à la date du début ET inférieur à la date de fin...
 

Mattjans

XLDnaute Nouveau
Re : Automatiser une recherche d'occurence entre deux dates.

Tout à fait... Le "Or" est resté d'un test à dates constantes pour vérifier si le tri fonctionnait bien.
J'ai aussi noté que tu écrivais Criteria1:="<" & Date_debut. Merci pour cette réponse. Il va falloir que j'apprenne à utiliser ce "&" à propos...

Il me reste à résoudre les problèmes de format de date et comment compter ce qui reste de ce tri.

Pour le compte, je me dis que je ne suis pas obligé de passer par ce tri. Est-ce que quelqu'un connais ce moyen?

En tout cas, merci pour cette réponse!

MJ
 

Catrice

XLDnaute Barbatruc
Re : Automatiser une recherche d'occurence entre deux dates.

Bonsoir,

Je propose la solution jointe.
Lorsque les dates sont saisies en Texte sous la forme jj/mm/aaaa, il faut les transformer en mm/jj/aaaa
Tester avec des dates où le jour -8 est inferieur à 12

La macro compte le nombre de cellules filtrées
 

Pièces jointes

  • Classeur1.xls
    26.5 KB · Affichages: 161
  • Classeur1.xls
    26.5 KB · Affichages: 164
  • Classeur1.xls
    26.5 KB · Affichages: 170
Dernière édition:

Statistiques des forums

Discussions
312 176
Messages
2 085 955
Membres
103 059
dernier inscrit
gib17