Trier une colonne de date en ordre decroissant

Moreno076

XLDnaute Impliqué
Bonjour à tous.

Ci joint je n'arrive pas à trier la colonne date de rupture par ordre décroissant.
J'ai un bouton avec une macro. triage date.

Est ce qu'une personne pourrait me modifier ce fichier svp, je n'y arrive absolument pas.

D'autre part comment réinitialiser le fichier j'ai le gros bouton gris qui est en mode gestion terminée etje voudrais le déplacer et pouvoir avoir un bouton réinitialiser le fichier.

Merci pour votre aide.
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Bonjour Moreno,

Pour le tri par date décroissante, remplace ton code par celui-ci

Code:
Sub T_DATE()
' T_DATE
   With Sheets("Synthèse")
      .Range("a1").CurrentRegion.Sort key1:=.Range("h1"), Order1:=xlDescending, key2:=.Range("a1"), Order2:=xlAscending, Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom
      Application.Goto .Range("a1"), True
   End With
End Sub

à+
Philippe
 

Dranreb

XLDnaute Barbatruc
Convertissez en dates les textes qui ressemblent à des dates.
Tenez, cette procédure le fait :
VB:
Sub T_DATE()
Dim PlgDon As Range, T(), L As Long
Set PlgDon = Sheets("Synthèse").UsedRange
T = PlgDon.Columns("H").Value
For L = 2 To UBound(T, 1)
   If VarType(T(L, 1)) = vbString Then T(L, 1) = CDate(T(L, 1))
   Next L
PlgDon.Columns("H").Value = T
PlgDon.Sort key1:=PlgDon.Columns("A"), Order1:=xlAscending, _
            key2:=PlgDon.Columns("H"), Order2:=xlDescending, _
            key3:=PlgDon.Columns("C"), Order3:=xlDescending, _
            Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
 

Moreno076

XLDnaute Impliqué
Sub T_DATE()
Dim PlgDon As Range, T(), L As Long
Set
PlgDon = Sheets("Synthèse").UsedRange
T = PlgDon.Columns("H").Value
For L = 2 To UBound(T, 1)
If VarType(T(L, 1)) = vbString Then T(L, 1) = CDate(T(L, 1))
Next L
PlgDon.Columns("H").Value = T
PlgDon.Sort key1:=PlgDon.Columns("A"), Order1:=xlAscending, _
key2:=PlgDon.Columns("H"), Order2:=xlDescending, _
key3:=PlgDon.Columns("C"), Order3:=xlDescending, _
Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

merci ça fonctionne presque, il reste toutefois une date isolée en bas???
 

Moreno076

XLDnaute Impliqué
C'est parce qu'il y a "DOUBLON" en Colonne A sur laquelle vous classez d'abord.
Ah ok et il n 'y a pas possibilité de classer la colonne date rupture independamment de la colonne A?
D'autre part connaissez vous un moyen d'avoir un bouton pour réinitialiser le fichier et ainsi pouvoir relancer le gros bouton gris qui est bleu une fois initialiser? Je voudrais aussi déplacer ce bouton légèrement vers la droite mais je n'ai pas la main. Merci de votre patience.
 

Moreno076

XLDnaute Impliqué
Non, non, je ne sais pas ce que vous voulez que fasse la CmdDémarrer_Click du module Feuil1 (Synthèse)
C'est à vous de l'adapter en conséquence.
Ok au moins le tri par date svp? pouvez vous me modifier cette macro afin que le tri se fasse après la transformation du format date?

Sub T_DATE()
Dim PlgDon As Range, T(), L As Long
Set PlgDon = Sheets("Synthèse").UsedRange
T = PlgDon.Columns("H").Value
For L = 2 To UBound(T, 1)
If VarType(T(L, 1)) = vbString Then T(L, 1) = CDate(T(L, 1))
Next L
PlgDon.Columns("H").Value = T
PlgDon.Sort key1:=PlgDon.Columns("H"), Order1:=xlDescending, _
key2:=PlgDon.Columns("H"), Order2:=xlDescending, _
key3:=PlgDon.Columns("C"), Order3:=xlDescending, _
Header:=xlYes, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

Merci
 

Dranreb

XLDnaute Barbatruc
La transformation d'un format de cellule ne change pas le contenu de cette cellule, il change seulement son apparence, et ce seulement si ce format s'applique au type de donnée de sa valeur, ce qui n'est pas le cas quand c'est du texte.
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
731