Changer le format mais aussi la valeur d'une cellule

Bonjour,

je voudrais savoir comment changer la valeur d'une cellule en même temps que son format.

Les dates sur mon fichier excel ont étés saisies sous la forme jj/mm/aaaa. Or je voudrai désormais les avoir sous la forme aaaa-mm-jj.

Si je clique droit sur la case, format de cellule, nombre, je sélectionne date, je prend comme paramètre régional un pays anglo-saxon, et le format aaaa-mm-jj est proposé, j'ai donc sur mon fichier excel toute mes dates sous le format que je veux.

Mais après avoir exécuté une macro, qui récupère ces dates je me rends compte que mes dates récupérées sont repassées au format initial.

En effet ma macro réccupère la valeur de la case, et si on clique dans la barre de formule on voit bien que ce n'est que l'affichage de la date qui a changé, sa valeur est restée en jj/mm/aaaa.

Comment faire pour que la valeur de mes dates passe en aaaa-mm-jj ?

Merci

Un petit exemple ?

33exemple.xlsx (12.24 Ko)

(Cliquez sur la barre de formule vous verrez c'est en jj/mm/aaaa !!! grrrr)

Bonjour ,

Je pense qu'il soit normal que la date s'affiche ainsi dans la barre de formule

Si le changement s'effectue lors de l’exécution de la macro , met-là dans le fichier en pièce jointe afin qu'on puisse vérifier son fonctionnement ( et voir ce qu'il faut changer)

Cordialement

Bonjour Tous,

bah oui dans ta macro tu traites quoi?? il est certain que si à la fin de la macro tu as un numberformat="jj mm yyyy"

tes dates repassent dans ce format

alors comme dab même demande le fichier avec la macro et les explications qui vont bien dedans et on va faire

a+

papou

Voilà l'exemple avec la macro.

C'est la valeur de la case qui est réccupérée et non le format ?

48exemple.xlsm (21.17 Ko)

re

L'objectif de cette macro est de placer la date entre guillemets (Récupére 2011-05-09 en A2 et doit placer "2011-05-09" en B2) ?

cordialement

Oui c'est exactement ça que j'aimerai faire

Re ,

Vola qui devrait faire l'affaire

Sub Rdate()

Dim i As Integer

For i = 2 To 427
Range("B" & i).Value = Cells(i, 1)
Range("B" & i).Value = """" & Range("B" & i).Text & """"
Next i

End Sub

Par contre il faut préformaté les cases de la colonne "B" en "aaaa-mm-jj"

cordialement

Merci beaucoup de ton aide

Re bonjour Tous,

alors moi j'aurais fait comme cela sans aucun formatage de cellule

a+

papou

Sub Rdate()
    For i = 2 To 472
        Cells(i, 2) = """" & Format(Cells(i, 1), "yyyy-mm-dd") & """"""
    Next i
End Sub

Merci à vous deux pour vos solutions, celle de papou sans préformatage semble être la plus simple

Encore merci ramoutch et papou

Re Julienvba le forum

et encore une autre pour supprimer en plus les lignes vide, car tu as plein de lignes vides dans ta colonne A

a+

papou

Sub Rdate()
    For i = 472 To 2 Step -1
    If Cells(i, 1) <> "" Then
        Cells(i, 2) = """" & Format(Cells(i, 1), "yyyy-mm-dd") & """"
        Else
        Rows(i).Delete shift:=xlUp
        End If
    Next i
End Sub

Re

merci papou pour cette solution ^_^ , je savait pas qu'on pouvait changer ainsi le format et sa me servira bien

Rechercher des sujets similaires à "changer format aussi valeur"