Changer l'ordre des termes dans une cellule

Fermé
Atitoi - 31 mars 2017 à 11:10
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 31 mars 2017 à 19:57
Bonjour,

Je cherche à changer l'ordre des termes (ou le format:17 ->2017) dans une cellule sachant que ceux-ci ne sont pas reconnus comme un format de date par excel.

Concrètement, je veux remplacer ça 03/31/17 par 31/03/2017 en utilisant une macro.

Je ne peux pas faire Format--> Date --> mettre le bon format, il me faut une macro.

Merci d'avance!

B

A voir également:

4 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
31 mars 2017 à 14:44
Bonjour,

exemple:
Sub decal()
    TD = Split(Range("A1"), "/")
    Range("A2") = CDate(TD(1) & "/" & TD(0) & "/20" & TD(2))
End Sub
0
Merci beaucoup, ça fonctionne à merveille!
En revanche, j'ai remplacé A2 par A1, pour que ça remplace dans la case direct.

Petite question --> Comment faire pour que la macro se déroule sur les cellules d'en dessous?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
31 mars 2017 à 16:35
Re,

je vous modifie ca
adaptez le nom de feuille
Sub decal()
    With Worksheets("feuil1")
        DerLig = .Range("A" & Rows.Count).End(xlUp).Row
        For N = 1 To DerLig
            TD = Split(.Range("A" & N), "/")
            .Range("A" & N) = CDate(TD(1) & "/" & TD(0) & "/20" & TD(2))
        Next N
    End With
End Sub
0
Vous êtes un génie --> et je n'y connais pas grand chose

Merci!
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
31 mars 2017 à 16:42
Re,

je n'y connais pas grand chose
Ca viendra
0
en revanche, quand je l'intègre à une autre macro, ça bug un peu, il me dit 'erreur d’exécution 9' l'indice n'appartient pas à la sélection.

Le code avant me permet de modifier toute une mise en page :

Sub Mise_en_page()
'
' Mise_en_page Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+M
'
Range("A:A,G:G,I:I,J:J,M:M,N:N").Select
Range("N1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("D:D").Select
Selection.Cut
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Columns("D:D").Select
Selection.Cut
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Columns("G:H").Select
Selection.Cut
Columns("D:D").Select
Selection.Insert Shift:=xlToRight
Columns("F:F").Select
Selection.Replace What:="Mrs", Replacement:="Mme", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Ms", Replacement:="Mme", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Mr", Replacement:="M", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="M.", Replacement:="M", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="Dr", Replacement:="M", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
ActiveWorkbook.Save


With Worksheets("feuil1")
DerLig = .Range("D" & Rows.Count).End(xlUp).Row
For N = 1 To DerLig
TD = Split(.Range("D" & N), "/")
.Range("D" & N) = CDate(TD(1) & "/" & TD(0) & "/20" & TD(2))
Next N
End With

With Worksheets("feuil1")
DerLig = .Range("E" & Rows.Count).End(xlUp).Row
For N = 1 To DerLig
TD = Split(.Range("E" & N), "/")
.Range("E" & N) = CDate(TD(1) & "/" & TD(0) & "/20" & TD(2))
Next N<code>

End With


End Sub
</code>
0
Désolé, fausse manip) de ma part, tout va bien!
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701 > Atitoi
31 mars 2017 à 19:57
Re
Vous voyez, ça vient!
0