Microsoft 365 Trie par date

GClaire

XLDnaute Impliqué
Supporter XLD
Hello la communauté

Je bloque sur un code qui devrais être simple, mais a priori pas si simple du fait de format date : DD DDDD MMMM AAAA

J'aimerais trier ma colonne "A" (avec entête) par ordre de date plus ancienne a plus récente jusqu'à la colonne "F"

Pour ce faire j'inclus le code dans un code qui me permet de formater mon tableau

VB:
Sub Format_Bordure_Récapitulatif_Affaires()

Dim Format_WS As Worksheet
Dim rng As Range, n As Long

Set Format_WS = Sheets("Récapitulatif_Affaires")

With Format_WS
    n = .Cells(.Rows.Count, 1).End(xlUp).Row 'Colonne A
    'MsgBox n
    .Cells(1, 1).Resize(n, 6).Borders.Weight = xlThin 'N° ligne inclus titre de la colonne et Le nombre de colonne a traiter
    'MsgBox n
        .Columns("A:A").NumberFormat = "General" 'On change le format
    With .Columns("A:F")
        .EntireColumn.AutoFit 'on fait une mise en largeur automatique
        .Sort Key1:=Range("A:F"), Order1:=xlAscending, Header:=xlYes 'On fait le trie par date avec en-tête
    End With
        .Columns("A:A").NumberFormat = "dd dddd mmmm yyyy" 'On remet le bon format
End With
Set Format_WS = Nothing
End Sub

Le trie ne se fait pas comme je souhaiterai

Avant :

001-Avant.JPG


Aprés :

002-Aprés.JPG


Auriez-vous une idée du comment faire pour que cela fonctionne comme je souhaiterai?

Merci, G'Claire
 

GClaire

XLDnaute Impliqué
Supporter XLD
re

merci.

Re,
Si Me.TextBox_1 est du type "mercredi 02 septembre 2020" Cdate me renvoie une erreur, il attend "02 septembre 2020"
Donc pour contourner le problème, une possibilité à tester :
VB:
With .Range("A" & DerrLigne)
       .Value = CDate(Mid(Me.TextBox_1, Application.Find(" ", Me.TextBox_1)))
       .NumberFormat = "dddd dd mmmm yyyy"
End With
Le but est de supprimer le premier mot de Me.TextBox_1.

je teste.

Merci
 

ChTi160

XLDnaute Barbatruc
Re
Tu pourrais aussi mettre ceci :
VB:
With .TextBox_1
       .Text = Application.Proper(Format(Date, "dddd dd mmmm yyyy")) 
      .Tag=format(Date,"00000")
End With
puis
VB:
With .Range("A" & DerrLigne)
       .Value = CDate(Me.TextBox_1.Tag) 'ou  .Value = CLng(Me.TextBox_1.Tag)
       .NumberFormat = "dddd dd mmmm yyyy"
End With
Non testé Lol
jean marie
 

ChTi160

XLDnaute Barbatruc
Re
pour le format dans la ListView
a toi de reformater la Date qui n'est plus un String 12/09/2020 en String Samedi 12 Septembre 2020
Ex :
VB:
 ListView1.ListItems.Add  , , Format( T(0), "dddd dd mmmm yyyy")
T(0) étant l'élément 1 de la Ligne à transférer dans la ListView et qui contient la Date Lol

Non testé Lol

jean marie
 

ChTi160

XLDnaute Barbatruc
Re

j'ai mis ceci et ça marche !
VB:
For Each C In Feuille_Récapitulatif_Affaires.Range("A2:A" & DerrLigne)
        .ListItems.Add , , Format(C, "dddd dd mmmm yyyy")
mais ça n'est pas très bien !
il faut soit tu Changes en colonne "A" tes dates qui sont du Texte en Date Format 12/09/2020 puis tu formate ta Colonne en "dddd dd mmmm yyyy"
ou alors créer une macro temporaire qui va faire le Boulot Changer les Date (Texte) en Date 12/09/2020
jena marie
 
Dernière édition:

GClaire

XLDnaute Impliqué
Supporter XLD
Re
Bisard
car sur le Fil ci dessous , tu n'avais pas ce problème ! sauf dans feuille "Linda" format String des dates
Calcul montant.
Ton Fil
je regarde lol
jean marie


C'est un autre fichier.
Il est ressemblant car je suis reparti de l'autre pour faire celui-la, mais cela n'était pas la bonne solution, car je perds plus de temps a réparer que si je serait parti de 0.

Merci.

G'Claire
 

GClaire

XLDnaute Impliqué
Supporter XLD
Re

j'ai mis ceci et ça marche !
VB:
For Each C In Feuille_Récapitulatif_Affaires.Range("A2:A" & DerrLigne)
        .ListItems.Add , , Format(C, "dddd dd mmmm yyyy")
mais ça n'est pas très bien !
il faut soit tu Changes en colonne "A" tes dates qui sont du Texte en Date Format 12/09/2020 puis tu formate ta Colonne en "dddd dd mmmm yyyy"
ou alors créer une macro temporaire qui va faire le Boulot Changer les Date (Texte) en Date 12/09/2020
jena marie


Merci, je regarde.

Oui pour les dates, il n'y en a pas beaucoup, je vais tout ressaisir.

Merci, G'Claire
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
315 097
Messages
2 116 186
Membres
112 679
dernier inscrit
Yupanki