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 :
Aprés :
Auriez-vous une idée du comment faire pour que cela fonctionne comme je souhaiterai?
L'image du post #1 montre en date : mercredi 02 septembre 2020.
Comme aucune mise en format ne peut affecter un string, je pense que Me.TextBox_1 contient bien ça. Mais ça reste de la spéculation. GClaire ?
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.
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
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
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.
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