Recuperer date

Bonjour à tous, étant nouveau sur excel je viens vers vous car j'ai un soucis et je n'arrive pas à le régler.

J'ai une colonne E de ma feuille "Données brutes" avec pour chaque cellule un format jour mois année "à" heure en gros j'ai par exemple "4 décembre 2018 à 17:30" le but serait de splitter toute la colonne par espace pour récupérer uniquement le jour mois et année puis transformer ces chaines de caractère en date.

Puis éventuellement de coller la nouvelle colonne dans la colonne F afin de pouvoir ensuite récuperer la date la plus ancienne et la date la plus récente afin de pouvoir les placer dans une autre feuille de calcul appelé "Analyse " dans les cellules "J2" et "J3".

Je sais que j'en demande un peu, en tout cas j'espère que le sujet est clair.

Je m'en remets à vous car je bloque totalement, je vous laisse un bout de code que j'ai essayé mais ne soyez pas effrayé par toutes les erreurs je suis tout nouveau.

Merci à tout ceux qui pourront m'aider.

Sub date_nouvelle()

Dim nb As Integer

Dim tmpstr(), nvlle_date As String

Dim valeur As String

Workbooks("fichier_client").Activate

Worksheets("Données brutes").Activate

Range("E2").Select

Range("E2", Selection.End(xlDown)).Select

nb = Selection.Rows.Count

For i = 2 To nb

valeur = Cells(i, 5).Value

tmpstr = Split(valeur, " ")

nvlle_date = tmpstr(0) & " " & tmpstr(1) & " " & tmpstr(2)

MyDate = "12 février 1969"

MyShortDate = CDate(MyDate)

'recuperer la date la plus loin

latestDate = myCollection.Max(r >= r.ExpirationDate)

Next

Worksheets("Analyse").Activate

Cells(2, 10) = date_ancienne

Cells(3, 10) = date_recente

End Sub

Bonjour,

Pour ce qui est de la conversion, tu peux faire quelque chose de très simple!

Je te joins un exemple dont voici le code:

Sub test()
For i = 1 To 3
    Range("b" & i) = CDate(Replace(Range("a" & i), "à", ""))
    Range("c" & i) = Int(CDate(Replace(Range("a" & i), "à", "")))
Next i
End Sub

Le fichier:

3test-dates.xlsm (19.45 Ko)

J'enlève juste le "à" de ta date et j'utilise la fonction CDate pour obtenir une date, pour enlever la partie heure de la date, il faut juste convertir la valeur en entier avec Int(), les dates sont des nombres en fait, 40000,5 = 40000 jours après le 0/1/1900, et 0,5 jour en heure (soit 12h00).

Pour la valeur mini et la valeur maxi, on verra ça après Je te laisse déjà intégrer ces lignes de code avec l'exemple.

Bonjour skyune, le forum,

récupérer uniquement le jour mois et année puis transformer ces chaines de caractère en date.

Un essai....

4classeur1.xlsm (18.30 Ko)

Puis éventuellement de coller dans la colonne F

1classeur2.xlsm (18.33 Ko)

Cordialement,

EDIT: salut AuSecour,

Merci beaucoup pour ta réponse mais n'est t-il pas plus simple et plus rapide de recuperer les caractère en fonction des espaces sans avoir à supprimer le "à" ainsi que les heures ?

Bonjour skyune, le forum,

récupérer uniquement le jour mois et année puis transformer ces chaines de caractère en date.

Un essai....

Classeur1.xlsm

Cordialement,

EDIT: salut AuSecour,

Merci t'es l'meilleur, ta une idée de comment récuperer la date la plus loin et la plus récente?

Bonjour skyune, le forum,

récupérer uniquement le jour mois et année puis transformer ces chaines de caractère en date.

Un essai....

Classeur1.xlsm

Puis éventuellement de coller dans la colonne F

Classeur2.xlsm

Cordialement,

EDIT: salut AuSecour,

J'ai oublié de preciser qu'il y a une entête à la première ligne de ma colonne, c'est pour cela que je n'arrive pas à faire marcher ton programme.

Re,

J'ai oublié de preciser qu'il y a une entête à la première ligne de ma colonne

Alors on boucle à partir de la ligne 2

For i = 2 To dl

ta une idée de comment récuperer la date la plus loin et la plus récente?

Je ne sais pas faire en vba...je tatonne....

Cordialement,

Ouais j'avais mis i=2 mais sur le programme il m'indique une erreur sur

Range("F" & i) = CDate(Left(Range("E" & i), Len(Range("E" & i)) - 8)) en mettant "erreur defini par l'application ou par l'objet" et sur ma feuille ça m'affiche que les 5 premières dates.

Une idée?

Re,

Teste ce fichier....

En feuil2 la date mini et la date maxi...

4classeur2.xlsm (19.37 Ko)

Et dis-moi...

Oui ça marche niquel sauf que le programmes marche lorsque on a 2 chiffre en heure (genre 17h) dès que ça passe sur 1 chiffre ça bug (ex"9h") c'est pour cela que le programme s'est arrêté au bout quelques lignes

Bonjour xorsankukai

Je te laisse t'occuper du sujet

Re,

C'est bien ce que je craignais.....effectivement, il faut impérativement que l'heure soit au format 00:00,

Je te laisse t'occuper du sujet

Trop compliqué pour moi....AuSecour était ,je pense, sur la bonne voie,

Cordialement,

Re,

Ah! Je vais peut-être devoir revenir sur le sujet alors!

Je propose de nouveau l'exemple que j'avais fait, avec le min et le max:

2test-dates.xlsm (20.21 Ko)

Ce n'est pas optimisé bien sûr, c'est juste un exemple après tout

Je tiens d'ailleurs à dire que ma solution est plus simple que celle qui utilise la fonction Split

Re,

Teste ce fichier....

En feuil2 la date mini et la date maxi...

Classeur2.xlsm

Et dis-moi...

Sub test()

Dim i As Integer, dl As Integer

Dim tmpstr() As String

Workbooks("fichier_client").Activate

Worksheets("Données brutes").Activate

dl = Range("E" & Rows.Count).End(xlUp).Row

For i = 2 To dl

valeur = Cells(i, 5).Value

tmpstr = Split(valeur, " ")

Range("F" & i) = CDate(tmpstr(0) & " " & tmpstr(1) & " " & tmpstr(2))

Range("F" & i).NumberFormat = "dd/mm/yyyy"

Next i

With Sheets("Analyse")

.Range("J2") = Application.Min(Range("F2:F" & dl))

.Range("J3") = Application.Max(Range("F2:F" & dl))

End With

End Sub

C'est bon j'ai tout arrangé ça marche niquel, merci beaucoup pour ton aide

Re,

Bravo AuSecour, j'étais parti sur une usine à gaz, tu m'as évité une usure prématurée des neurones,

Amitiés

Re,

Bravo AuSecour, j'étais parti sur une usine à gaz, tu m'as évité une usure prématurée des neurones,

Amitiés

Re,

Content d'avoir pu éviter à un collègue du forum de chercher trop compliqué garde tes neurones pour d'autres sujets, on va en avoir besoin si tu veux te pencher sur celui de I3 Ptitbiscuit ça serait sympa, j'ai pas réussi à faire quelque chose de simple sur son sujet

Rechercher des sujets similaires à "recuperer date"