Inversement format date

Mkonate

XLDnaute Nouveau
Bonjour à tous,

Je travail sur un fichier et je rencontre un petit soucis de code. j'ai enregistré une macro pour changer les . en / afin d'avoir un format en date. (Ex= 02.03 devient 02/03/19).

Mon soucis est que pour certaines dates le sens est inversé par exemple si j'ai le 01 Juin (01.06) lorsque je lance la macro j'obtiens 06/01/19 ce qui change toutes les informations de mon tableau.

J'ai vu dans un forum qu'il fallait utiliser
VB:
ActiveCell.Offset(0, 1).NumberFormat = "dd/mm/yyyy"

            ActiveCell.Offset(0, 1) = DateSerial(Split(Me.TextBox_date, "/")(2), Split(Me.TextBox_date, "/")(1), Split(Me.TextBox_date, "/")(0))

Mais je ne sais pas comment l'adapter à ma macro ci-dessous, car je m'y connait pas trop en VBA, je sais enregistrer des macros mais pour le reste je bloque.

Quelqu'un pourrait-il m'aider à résoudre mon problème? Merci d'avance.

Code:
Sub format_date()
'
' format_date Macro
'
 
'
    Cells.Replace What:=".", Replacement:="/", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour @Mkonate,

Essayez le code suivant (à placer dans le module de la feuille à traiter):
VB:
Sub format_date()
Dim xrg As Range, xcell
  On Error Resume Next: Application.ScreenUpdating = False
  Set xrg = Cells.SpecialCells(xlCellTypeConstants, xlTextValues)
  If xrg Is Nothing Then Exit Sub
  xrg.NumberFormat = "dd/mm/yyyy"
  For Each xcell In xrg: xcell.Value2 = CDate(Replace(xcell, ".", "/")): Next xcell
End Sub
 

Pièces jointes

  • Mkonate- Texte en date- v1.xlsm
    15.3 KB · Affichages: 6
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 943
Membres
101 849
dernier inscrit
florentMIG