Macro sur recherche de date EXCEL
Résolu/Fermé
A voir également:
- Macro sur recherche de date EXCEL
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Comment calculer la moyenne sur excel - Guide
- Si et excel - Guide
2 réponses
m@rina
Messages postés
21289
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
23 janvier 2025
11 382
31 mai 2009 à 14:42
31 mai 2009 à 14:42
Bonjour,
Tu parles au début de faire unn tri, puis dans la macro tu crées un filtre...
C'est donc bien un filtre que tu souhaites faire et non un tri ? Avec comme critère "supérieur à la date entrée dans la boîte de dialogue" ?
Plusieurs remarques sur ta macro :
La vérif de la date : tu testes si l'utilisateur a laissé la boîte vide, mais ce n'est pas suffisant, il a peut être mis une date qui n'en est pas une (texte ou date erronée)...
Ensuite pour faire ton filtre, inutile de faire une sélection, comme toujours en vba. Les sélections sont inutiles et alourdissent le code.
Et enfin, les histoires de format... Les dates sont un gros problème en VBA car Excel attend des dates au format américain, et donc une date de type 05/01/09 (5 janvier) sera convertie en 01/05/09 (1er mai).
En principe il suffit de modifier le type de variable. Au lieu de Date, on met Double ou Long. Toi tu as carrément zappé ça !!
Dans ton cas, je n'ai pas mis Double car il faut tester la date... Donc ça ne fonctionnerait plus...
Bon, tu peux tester ce code (supposant que ta base de données commence en ligne 5, colonne A:
m@rina
Tu parles au début de faire unn tri, puis dans la macro tu crées un filtre...
C'est donc bien un filtre que tu souhaites faire et non un tri ? Avec comme critère "supérieur à la date entrée dans la boîte de dialogue" ?
Plusieurs remarques sur ta macro :
La vérif de la date : tu testes si l'utilisateur a laissé la boîte vide, mais ce n'est pas suffisant, il a peut être mis une date qui n'en est pas une (texte ou date erronée)...
Ensuite pour faire ton filtre, inutile de faire une sélection, comme toujours en vba. Les sélections sont inutiles et alourdissent le code.
Et enfin, les histoires de format... Les dates sont un gros problème en VBA car Excel attend des dates au format américain, et donc une date de type 05/01/09 (5 janvier) sera convertie en 01/05/09 (1er mai).
En principe il suffit de modifier le type de variable. Au lieu de Date, on met Double ou Long. Toi tu as carrément zappé ça !!
Dans ton cas, je n'ai pas mis Double car il faut tester la date... Donc ça ne fonctionnerait plus...
Bon, tu peux tester ce code (supposant que ta base de données commence en ligne 5, colonne A:
Sub daterec() Dim Message, Titre, dde, réponse Titre = "Date de début" Message = "Entrez la date du début au format jj/mm/aaaa :" dialogue: dde = InputBox(Message, Titre) If dde <> Format(dde, "dd/mm/yyyy") Then réponse = MsgBox("Votre date n'est pas valide! Recommencez ?", 4) If réponse = vbYes Then GoTo dialogue Else Exit Sub End If dde = Format(dde, "mm/dd/yyyy") Worksheets("Feuil1").Range("A5").AutoFilter _ Field:=4, _ Criteria1:=">=" & dde End Sub
m@rina