Les Allergies
Alimentaires
Posez votre question Signaler

Trier des dates dans Excel sous VBA

herod1983 - Dernière réponse le 30 mars 2008 à 23:24
Bonjour
Je suis novice dans le VBA sous Excel.
J'ai une colonne A avec plusieurs cellules dans chacune il y a une date au format.(DD, MM, YYYY).
Ses cellules dépendent chacune de leur ligne respective car pour chaque date il y a du texte dans d'autre colonne.
J'aimerais faire une macro pour trier ces dates par ordres la plus récente ou plus ancienne, et bien sur si les dates sont changées de place leur ligne respective déplacée aussi.
J'aurais pu prendre les systèmes de liste proposé par Excel mais cela n'est pas très efficace.
Merci d'avance pour votre aide
Lire la suite 

Trier des dates dans Excel sous VBA »

5 réponses
Réponse
+0
moins plus
bonjour

avec plusieurs cellules dans chacune il y a une date au format.(DD, MM, YYYY).

Il ne faut jamais oublier que le format n'est qu'un affichage et que ton format soit (DD, MM, YYYY) ou simplement (DDDD), si tu tries tes dates elles seront dans le même ordre.


pour trier ces dates par ordres la plus récente ou plus ancienne, et bien sur si les dates sont changées de place leur ligne respective déplacée aussi.

Pour cela il te faut trier tout à fait normalement tes données (sort) en prenant l'ensemble des colonnes des lignes et prendre le critère de tri sur ta colonne date.

herod1983 - 28 mars 2008 à 18:42
bonjour

Merci déjà de ta réponse.

En fait pour la mise en forme je vois à peu près ce que je dois faire,
mais c'est la syntaxe qui me manque je ne connais pas encore assez bien le code.

Si par hasard tu aurais une exemple de macro que je pourrais mettre en pratique sa serait super.

Merci encore pour ton aide

A+
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

Pour le tri, la macro suivante te trie toutes les cellules de ta feuille
sur la colonne B en ascendant, à partir de la ligne 2 avec le titre en ligne 1

Si tu ne veux trier qu'une plage, tu peux remplacer Cells par [G20:M50] par exemple pour trier de G20 à M50
en remplaçant B2 par H21 par exemple et si tu n'as pas de titre tu remplaces Yes par No

Sub tri()
Cells.Sort Key1:=[B2], Order1:= xlAscending, Header:=xlYes, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
Ajouter un commentaire
Réponse
+0
moins plus
Salut

Désolé mais sa ne marche pas vraiment car cette macro ne tient pas compte des mois ou des années et prend que les jours donc si je fais un tri du plus récent au plus ancien il me mettra 14/01/2008 avant 8/02/2008.

Si par hasard tu avais une autre idée sa me dépannerai.

Merci
Ajouter un commentaire
Réponse
+0
moins plus
bonjour

Si tu as réellement des dates dans tes données, les entiers de tes dates sont exprimés en jours depuis le 01/01/1900. Si tu tries du plus récent au plus ancien il me mettra :

- 8/02/2008 qui en réalité vaux 39486 (plus récent donc plus grand)
avant
- 14/01/2008 qui en réalité vaux 39461

tu peux voir ces valeurs si tu mets tes données au format standard.

Si tu n'obtiens pas ce résultat, c'est que tes données ne sont pas des dates mais du texte et tu ne peux faire aucun calcul avec sans faire de grosses transformations de données.

Si tu n'arrives pas à élucider le problème, mets nous un exemple sous : http://cjoint.com/index.php
Ajouter un commentaire
Ce document intitulé « Trier des dates dans Excel sous VBA » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?