Format date

Bonjour à tous,

Je dispose d'une colonne de dates de matchs de football et ne parvient pas à la trier dans l'ordre chronologique.

J'ai essayé d'appliquer divers formats de date, sans succès, le texte ne bouge pas.

Ci-joint le fichier

Merci de votre aide !

Anthony

bonjour

saisis

01/12/2018 20:30

sans la virgule

amitiés

Salut voilà

Bonjour à tous,

Le fichier joint aixorigin conversion game date.xlsX contient les données déjà transformées et triées.

Le fichier joint aixorigin conversion game date.xlsM contient le code pour transformer les données et les triées. Il suffit de faire un double-clique sur la cellule "A1".

ric

Idem mais avec mes petites mimine sans macro mdrrr c'est juste que ta date au départ n'est pas dans la bonne forme donc faut tout remplacer.

re

si le fichier est long, faire dans le menu rechercher/remplacer

virgule

ne rien saisir dans la case "par"

le tour est joué

Merci pour vos nombreux retours.

Malheureusement aucune solution ne convient totalement car :

  • soit le format initial n'est pas transformé en format date et rend donc le tri impossible
  • soit la macro ne trie pas de manière chronologique les dates (j'ai fait le test @ric )

J'aime bien l'idée de @jmd avec le rechercher/remplacer mais là encore le mois "Déc" par exemple pose problème

Si on peut éviter la macro je préfère car peur qu'elle ralentisse mon fichier...

ça me dérange pas créer une autre colonne.

re

une colonne contenant un SI(tacellulecontient "Déc" alors mettre /12/ )

tu vois le truc ?

à faire en imbriquant 11 fois la fonction SI pur couvrir les 12 mois

un peu galère

mais faisable

note : si tu as des millions de lignes, alors prends Power Query

hyper-rapide pour ce genre de remplacement de texte puis remise au format date

tu connais ?

Bonjour,

Une proposition à étudier..

Il faut faire attention aux espaces indésirables !...

Cdlt.

Public Sub ConvertDates()
Dim tbl As Variant
Dim lastRow As Long, I As Long
Dim x As String, y As String, z As String
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        tbl = .Cells(2, 1).Resize(lastRow - 1)
        For I = LBound(tbl) To UBound(tbl)
            x = Replace(Trim(tbl(I, 1)), ",", "")
            y = VBA.Split(x)(1)
            z = MatchUp(y)
            tbl(I, 1) = CDate(Replace(x, y, z))
        Next I
        .Cells(2, 1).Resize(UBound(tbl)).Value = tbl
        .Cells(1).CurrentRegion.Sort Key1:=.Cells(2, 1), Header:=xlYes
    End With
End Sub

Private Function MatchUp(txt) As String
    MatchUp = Switch(txt = "Jan", "janv", txt = "Feb", "févr", txt = "Mar", "mars", _
                     txt = "Apr", "avr", txt = "May", "mai", txt = "Jun", "juin", _
                     txt = "jul", "juil", txt = "Aug", "août", txt = "Sep", "Sept", txt = "Dec", "Déc")
End Function

Jean-Eric => Comment as-tu fait stp ? Et surtout, comment copier cette macro dans mon fichier d'origine ? (là j'ai "déboguage" qui s'affiche)

Jmd => J'ai essayé, c'est effectivement un peu (trop) galère

Bonjour,

Peux-tu préciser ta question ?

Cdlt.

Jean-Eric => Comment as-tu fait stp ? Et surtout, comment copier cette macro dans mon fichier d'origine ? (là j'ai "déboguage" qui s'affiche)

Jmd => J'ai essayé, c'est effectivement un peu (trop) galère

Faut coller le code dans ta feuille (alt+F11) et non dans un module séparé.

Bonjour,

Avec quelques colonnes en plus et des remaniements on peut y arriver sans macro.

Ci-joint le fichier support. Si problème n'hésite pas.

Dans l'attente de te relire,

Bonjour @NicoAdins

C'est vraiment pas mal, tout à fait ce qu'il fallait !

Reste un pb à régler : le tri des dates finales dans l'ordre chronologique.

Dans l'état, on a un tri qui s'effectue sur les jours et non sur la date dans son intégralité

Exemple:

01/03/19

01/12/18

01/01/19

02/02/19

02/12/18

02/04/19

...etc...

Merci à toi et à vous tous !

Up

Bonjour,

A qui t'adresses-tu ?

Cdlt.

Bonjour Jean-Eric

à Nico principalement mais si qqun d'autre trouve la solution...

Bonjour aixorigin,

Voyez si la "Feuille2" de la pièce jointe vous convient

Re,

Essaie ainsi sur base du fichier de NicoAdins.

H2 : =[@Date]+[@Heure]

Format personnalisé

jj/mm/aaaa h:mm;@

ça marche du feu de dieu !! Merci Jean-Eric

njhub ==> Je n'ai pas compris ta solution désolé, merci en tout cas

Rechercher des sujets similaires à "format date"