[VBA] Convertir Date US en FR

Convertir Date US en FR [VBA] - VB/VBA/VBS - Programmation

Marsh Posté le 14-08-2009 à 10:03:38    

Bonjour,
 
Je possède actuellement un fichier Excel contenant environ 2000 enregistrements, avec des dates en format US dans une colone (de C5 à C2000).
 
J'aimerais convertir ces dates en format FR.
 
Malheuresement, lorsque je vais dans format Cellule et que je change le format, cela ne me change pas la valeur de la cellule :(
 
J'ai déjà cherché sur google, mais n'était pas très bon en VBA, je n'ai pas réussi à adapter un seul code trouvé correctement :(
 
Merci d'avance pour votre aide  :whistle:

Reply

Marsh Posté le 14-08-2009 à 10:03:38   

Reply

Marsh Posté le 14-08-2009 à 11:46:04    

Salut,sans doute à adapter pour le format


Option Explicit
 
Sub Tst()
Dim i As Integer
Dim v As Double
    For i = 5 To 2000
        v = CDbl(CDate(Cells(i, 3)))
        Cells(i, 3) = Format(v, "dd/mm/yyyy hh:mm:ss" )
    Next i
End Sub


Message édité par kiki29 le 14-08-2009 à 11:54:53
Reply

Marsh Posté le 18-08-2009 à 10:57:20    

Merci pour la réponse.
 
Alors la macro plante en me disant "type missmatch", mais me change bien quand même les dates, à part certaines lignes :(.
 
Bizarre,
 
Mais merci tout de même cela m'a bien aidé :)

Reply

Marsh Posté le 18-08-2009 à 14:04:45    

Salut, je suis curieux de voir alors si ça te dit poste ce fichier récalcitrant sur http://cjoint.com/

Reply

Marsh Posté le 18-08-2009 à 14:51:01    

Merci, voilà le lien :
 
http://cjoint.com/?isoYjlwPpL
 
En fait, le mieux serait de garder uniquement la date, l'heure n'a pas d'importance.

Reply

Marsh Posté le 18-08-2009 à 15:55:53    

Pour infos, si on doit mettre les minutes, il faut écrire "nn" dans le format au lieu de "mm" qui sert pour les mois.
Pour ne garder que la date, faire la conversion avec Cells(i, 3) = Format(v, "dd/mm/yyyy" )

Reply

Marsh Posté le 18-08-2009 à 16:28:20    

Re,pas aussi simple qu'il y parait, c'est de la "bidouille" mais à priori cela "marche"


Sub Tst2()
Dim i As Long
Dim v As Double
Dim j As Integer, m As Integer, a As Integer
Dim sJ As String, sM As String
Dim s As String
 
    For i = 5 To 2000
        If IsDate(Cells(i, 3)) Then
            v = CDbl(CDate(Cells(i, 3)))
            j = Day(v)
            m = Month(v)
            a = Year(v)
             
            Select Case j
                Case 1 To 9: sJ = "0" & j
                Case Else: sJ = j
            End Select
             
            Select Case m
                Case 1 To 9: sM = "0" & m
                Case Else: sM = m
            End Select
             
            s = sJ & "/" & sM & "/" & a
             
            Cells(i, 3).NumberFormat = "General"
            Cells(i, 3) = Format(s, "dd/mm/yyyy" )
        End If
    Next i
End Sub


 
On doit pouvoir remplacer


            Cells(i, 3).NumberFormat = "General"
            Cells(i, 3) = Format(s, "dd/mm/yyyy" )


par


            Cells(i, 3).NumberFormat = "General"  
            Cells(i, 3) = CDate(s)


Message édité par kiki29 le 18-08-2009 à 17:13:36
Reply

Marsh Posté le 18-08-2009 à 16:37:32    

Effectivement ça marche impeccable, merci beaucoup !! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed