Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Ordonner selon certaines conditions

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Magic_Doctor

XLDnaute Barbatruc
Supporter XLD
Bonsoir,
Je suis à la recherche de la solution suivante :
J’ai 2 colonnes contiguës. L’une avec des noms, l’autre avec des dates de naissance, par ex. :
Zaza 26/12/1957
Lolo 13/04/1988
Toto 18/11/1944
Bibi 14/01/1995
Juju 15/01/2005

Je voudrais, par macro, faire un classement en fonction des dates (mois + jour du mois) mais sans tenir compte des années. Par conséquent, je désirerais que ma liste ordonnée soit ainsi :

Bibi 14/01/1995
Juju 15/01/2005
Lolo 13/04/1988
Toto 18/11/1944
Zaza 26/12/1957

Merci pour tout coup de main.
 
Re : Ordonner selon certaines conditions

Bonjour Catrice, Job75 & tout le forum,

Un grand merci pour vos solutions.
Celle de Catrice résolvant tous les problèmes, je l'ai adaptée en fonction de ma feuille.
Mais voilà, il se trouve qu'il y a un en-tête pour ces colonnes de tri qui perturbe le bon fonctionnement de la macro.
Comment résoudre ce dernier problème mineur mais agaçant ?

Enfin j'ai rédigé une petite fonction qui donne l'âge.
J'ai volontairement limité la longueur de la liste car, Dieu merci, je n'aurais ainsi pas à fêter plus d'une dizaine d'anniversaires !

Merci pour vos réponses.
 

Pièces jointes

Re : Ordonner selon certaines conditions

Re,

Pour regler le probleme des entetes :

.Range("FirstCelListeCumples").CurrentRegion.Resize(MaZone.Rows.Count).Sort Key1:=.Range("FirstCelListeCumples"), Header:=xlYes, Order1:=xlAscending

Pour avoir l'age, tu peux egalement utiliser :
=DATEDIF(C7;MAINTENANT();"y")
Voir le fichier joint
 

Pièces jointes

Dernière édition:
Re : Ordonner selon certaines conditions

Excusez-moi de revenir sur ce fil qui paraissait être réglé, mais je viens de rencontrer un nouveau problème (cela ne cessera donc jamais...) sur la feuille définitive.
La solution de Catrice marche parfaitement. La feuille définitive est évidemment plus chargée, mais le tableau des dates d'anniversaire se présente exactement de la même manière et les cellules nommées portent les mêmes noms que dans la feuille de Catrice.
Cependant, quand je déclenche la macro, alors surgit une nouvelle bizarrerie excelienne. Dans la colonne des dates d'anniversaire, au lieu d'avoir des dates normales du style :

22/03/1945
15/10/1993
28/07/1975
28/08/1960
27/09/1955
15/11/1988
28/02/1961
21/12/1956
03/05/1988

apparaissent des espèces de dates comme :

36607-1945
36814-1993
36735-1975
36766-1960
36796-1955
36845-1988
36584-1961
36881-1956
36741-1999

et la macro bloque. Quant aux âges, évidemment je n'ai que des messages d'erreur.

Quelle est donc l'origine de ce mystère ?
 
Re : Ordonner selon certaines conditions

Re,

Il ne s'agit pas d'une "bizarrerie excelienne".

Les codes dont tu parles sont générés par la macro.
Elle a du planter en cours de route.

36607 c'est la date d'origine ramené à l'année 2000
1945, c'est l'année d'origine (pour remettre tout dans l'ordre).

Pour remettre tout comme il faut, tu peux executer ce code :
Code:
With ActiveSheet
    For Each cell In .Range(.Range("FirstCelListeCumples"), .Range("FirstCelListeCumples").End(xlDown))
        cell.Value = DateSerial(Split(cell, "-")(1), Month(Split(cell, "-")(0)), Day(Split(cell, "-")(0)))
    Next
End With

J'en ai profité pour corriger un petit oubli.
Il manquait un point devant le Range ci-dessus.
Il faut le corriger dans ton fichier.
 
Dernière édition:
Re : Ordonner selon certaines conditions

Bonsoir Cartrice, bonsoir Jha,

Effectivement mes cellules sont bien au format "Date".

J'ai bien réalisé la correction mentionnée par Catrice, mais ça ne marche toujours pas...

En désespoir de cause, je joins le maudit fichier (> 48 Ko)...
J'en profite au passage pour signaler que dans Workbook_Open la sentence Worksheets(1).ScrollArea = "A1:Q39" est inexécutable. J'ai dû la mettre en veilleuse. Allez savoir pourquoi...?

Difficile de finir un programme aussi simple soit-il sur Excel !


Cijoint.fr - Service gratuit de dépôt de fichiers
 
Re : Ordonner selon certaines conditions

Bonsoir,

J'ai enfin réussi à régler le problème.
Il s'agissait en fait d'une interférence entre une fonction qui gère le FC des dates ("EstFerie") et la macro "TriCumples" qui ordonne les dates d'anniversaire.
Je signale au passage que la fonction et la macro fonctionnent très bien individuellement.
En revanche je n'ai pas compris le pourquoi de l'interférence.
Quoi qu'il en soit, pour y remédier j'ai donc été obligé, avant de lancer la macro "TriCumples", de bloquer la fonction "EstFerie". Une fois la macro "TriCumples" achevée, je débloque la fonction "EstFerie".

Il peut donc exister des interférences entre macros et fonctions....

Si cela peut intéresser quelqu'un, ci-joint le fichier corrigé.

Cijoint.fr - Service gratuit de dépôt de fichiers
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
  • Question Question
Réponses
17
Affichages
3 K
jaypeeh
J
S
  • Question Question
Réponses
11
Affichages
2 K
Réponses
5
Affichages
920
S
Réponses
22
Affichages
18 K
sadlersmith
S
N
  • Question Question
Réponses
3
Affichages
2 K
N
L
Réponses
3
Affichages
995
ludo93
L
T
Réponses
10
Affichages
2 K
titom59280
T
N
Réponses
9
Affichages
1 K
N
B
Réponses
0
Affichages
7 K
biafox
B
C
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Réponses
2
Affichages
2 K
H
  • Question Question
Réponses
4
Affichages
1 K
S
  • Question Question
Réponses
3
Affichages
2 K
S
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…