Bonsoir
Je pige pas trop ; je mets du texte formaté comme tel en col A , je désire traiter comme date , donc je remplace le - en / là ça va
ensuite je modifie le "h" en ":" mais là Malheureusement après chaque REPLACE le jour et mois sont inversés ????? je ne trouve pas
j'ai laissé en 'pause' le résultat de A en E c'est l'original
Plus court puisque jj-mm-aaaa est un format "officiel" de date (le système reconnait le - comme séparateur de date en plus du séparateur indiqué dans ses options) :
Code:
c.Value = CDate(Replace(c.Text, "h", ":"))
Et une seule boucle suffit
Et pour aller plus vite si vous avez beaucoup de date à transformer :
Code:
Sub convert()
Dim t(), i As Integer
dl = Worksheets("Feuil1").Range("A100").End(xlUp).Row
t = Range("A1:A" & dl)
For i = LBound(t) To UBound(t)
t(i, 1) = CDate(Replace(t(i, 1), "h", ":"))
Next i
Range("A1:A" & dl).Value = t
End Sub
Il n'est pas vraiment obligatoire ici, mais c'est simplement pour rappeler qu'on travaille sur le text de la cellule qui peut être différent de sa valeur lorsque c'est un nombre qui l'occupe.
dernier point : je n'arrive pas à retrouver le format d'origine pour les heures en A après le replace et malgré un format d ecellules : jj/mm/aaaa hh:mm ;@ par exemple pour 22/06/2021 16:00 dans la cellule dans la barre de formule on voit 16:00:00 idem si je mets dans une variable car je dois revenir en texte avec 16:00
?? c'est quoi [e1] , [e15] comment je reformate ma cellule ici de A1 à A7 ? en E c'est juste pour les essais et faire du copier /coller de E en A afin de retrouver les data de base
Sub test3()
For Each cel In Range("A1:A" & Cells(Rows.Count, "A").End(xlUp).Row).Cells
cel.NumberFormat = "dd-mm-yyyy hh:mm"
cel.Value = Format(Replace(cel.Value, "h", ":"), "mm-dd-yyyy hh:mm")
Next
End Sub
Non ,est ce que t'as vu la VRAIE valeur dans fx ligne de formule qui elle donne le bon résultat informatique donc en VBA je récupère 16:00:00 et pas 16:00 ?
j'en ai besoin pour créer une string et comparer 16:00:00 n'est pas égal à 16:00