Se connecter avec
S'enregistrer | Connectez-vous

Trier des dates dans Excel sous VBA

Dernière réponse : dans Programmation

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

Autres pages sur : trier dates excel vba

Lassé par la pub ? Créez un compte

Salut, herod38

Sélectionne toutes les colonnes contenant des données, puis clique sur le menu Données / Trier... et choisis les colonnes sur lesquelles le tri s'applique (colonne A dans ton cas) et le sens du tri (croissant pour les dates les plus anciennes en premier, décroissant pour l'inverse).

Pour connaître le code VBA qui fait cela, utilise l'enregistreur de macros (menu Outils / Macro / Nouvelle macro...). Il devrait te donner un code qui ressemble à ceci:

Range("A1:E14").Select
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending

A toi d'adapter pour obtenir ce que tu souhaites. Je te laisse aussi consulter l'aide en ligne de VBA Excel sur la fonction Sort pour en découvrir toutes les subtilités...

Bonne continuation

La réponse de gillou_gre ne donne pas de réponse satisfaisant . Mais j'ai une astuce :
On construit deux colonnes qu'on va masquée par la suite .
Dans la première cellule de la première colonne on saisie la formule suivante :
=SI(A1="";"";DATE(DROITE(A1;2);STXT(A1;4;2);GAUCHE(A1;2))) où A1 est la cellule contenant la date à trier
on s'étend la formule dans les autres cellules de la première colonne
Dans la première cellule de la deuxième colonne on saisie la formule suivante :=F1 où F1 est la cellule contenant la formule précédente.
On s'étend la formule dans les autres cellules de la deuxième colonne
On change le format des cellules de la deuxième colonne au format standard
On masque ces deux colonnes inutilisables
Pour trier les dates de la colonne A par ordre croissant utiliser alors le code VBA suivant:
Range("A2:G20" ).Sort Key1:=Range("G2" ), Order1:=xlAscending
Lassé par la pub ? Créez un compte
Tom's guide dans le monde