Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Conversion de texte en date ( en VBA )

5 réponses
Avatar
Pounet95
Bonjour à toutes et tous,
XL2000 sous Windows2000

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985 ;o((((
Je tente d'utiliser CDate, Format, etc .... rien à faire.

Ci-après le code que je tente d'utiliser
où cel est un objet range qui représente la cellule concernée et newDate (
déclarée en tant que Date dans un premier temps puis effacée ensuite donc
devenue Variant ? )

celjour = Left(cel.Value, 2)
celmois = Mid$(cel.Value, 4, 2)
celAn = Right(cel.Value, 4)
newDate = celjour & "/" & celmois & "/" & celAn
cel.Value = newDate

Si vous avez quelque idée pour me dépetrer de ce piège ..... !
Merci d'avance
Pounet95

5 réponses

Avatar
Modeste
Bonsour® Pounet95 avec ferveur ;o))) vous nous disiez :

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985



;o((((

=SUBSTITUE(A1;".";"/")
cela reste du texte

=--SUBSTITUE(A1;".";"/")
format cellule : date
Avatar
MichDenis
Dans la procédure soumise, il manquait une ligne de code
pour initialer la variable Cel

Set Cel = Range("A1")



Il y a aussi ce code plus court ...

CelJour = Range("A1")
MaDate = CDate(Replace(CelJour, ".", Application.International(xlDateSeparator)))
With Cel
.Value = ""
.NumberFormat = "DD/MM/YY"
.Value = MaDate
End With

Application.International(xlDateSeparator) retourne le séparateur de date
du panneau de configuration de Windows



"MichDenis" a écrit dans le message de groupe de discussion :

Bonjour Pounet,

Les fonctions de conversions comme Cdate() utilisent les paramètres
définis dans la panneau de configuration de Windows. La conséquence
la chaîne de caractères passée à la fonction Cdate() doit respecter cela.

Essaie ceci :
'-------------------------------------
Sub Test()

Dim MaDate As Date, Jour As String
Dim mois As String, an As String
Dim CelJour As String, Cel As Range

CelJour = Cel.Value

Jour = Left(CelJour, 2)
mois = Mid$(CelJour, 4, 2)
an = Right(CelJour, 2)

MaDate = DateSerial(an, mois, Jour)

With Cel
.Value = ""
.NumberFormat = "DD/MM/YY"
.Value = MaDate
End With

End Sub
'-------------------------------------



"Pounet95" a écrit dans le message de groupe de discussion :

Bonjour à toutes et tous,
XL2000 sous Windows2000

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985 ;o((((
Je tente d'utiliser CDate, Format, etc .... rien à faire.

Ci-après le code que je tente d'utiliser
où cel est un objet range qui représente la cellule concernée et newDate (
déclarée en tant que Date dans un premier temps puis effacée ensuite donc
devenue Variant ? )

celjour = Left(cel.Value, 2)
celmois = Mid$(cel.Value, 4, 2)
celAn = Right(cel.Value, 4)
newDate = celjour & "/" & celmois & "/" & celAn
cel.Value = newDate

Si vous avez quelque idée pour me dépetrer de ce piège ..... !
Merci d'avance
Pounet95
Avatar
Corto
Bonjour Pounet95,
Tu peux faire la même chose en une seule ligne :
cel.Value = DateValue(Replace(cel.Value, ".", "/"))

Corto

Pounet95 a écrit :
Bonjour à toutes et tous,
XL2000 sous Windows2000

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985 ;o((((
Je tente d'utiliser CDate, Format, etc .... rien à faire.

Ci-après le code que je tente d'utiliser
où cel est un objet range qui représente la cellule concernée et
newDate ( déclarée en tant que Date dans un premier temps puis effa cée
ensuite donc devenue Variant ? )

celjour = Left(cel.Value, 2)
celmois = Mid$(cel.Value, 4, 2)
celAn = Right(cel.Value, 4)
newDate = celjour & "/" & celmois & "/" & celAn
cel.Value = newDate

Si vous avez quelque idée pour me dépetrer de ce piège ..... !
Merci d'avance
Pounet95



Avatar
Pounet95
Bonjour et merci pour vos réponses,
Je mets tout ça en oeuvre !

Pounet95

"Pounet95" a écrit dans le message de
news:
Bonjour à toutes et tous,
XL2000 sous Windows2000

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985 ;o((((
Je tente d'utiliser CDate, Format, etc .... rien à faire.

Ci-après le code que je tente d'utiliser
où cel est un objet range qui représente la cellule concernée et newDate
( déclarée en tant que Date dans un premier temps puis effacée ensuite
donc devenue Variant ? )

celjour = Left(cel.Value, 2)
celmois = Mid$(cel.Value, 4, 2)
celAn = Right(cel.Value, 4)
newDate = celjour & "/" & celmois & "/" & celAn
cel.Value = newDate

Si vous avez quelque idée pour me dépetrer de ce piège ..... !
Merci d'avance
Pounet95



Avatar
Pounet95
Re,

SUPER !!!! j'y trouve mon bonheur .......... et celui de ceux qui se
serviront du classeur

Pounet95

"Pounet95" a écrit dans le message de
news:
Bonjour à toutes et tous,
XL2000 sous Windows2000

Je n'arrive pas à convertir des chaines du style 11.04.1985 en date
11/04/1985 ;o((((
Je tente d'utiliser CDate, Format, etc .... rien à faire.

Ci-après le code que je tente d'utiliser
où cel est un objet range qui représente la cellule concernée et newDate
( déclarée en tant que Date dans un premier temps puis effacée ensuite
donc devenue Variant ? )

celjour = Left(cel.Value, 2)
celmois = Mid$(cel.Value, 4, 2)
celAn = Right(cel.Value, 4)
newDate = celjour & "/" & celmois & "/" & celAn
cel.Value = newDate

Si vous avez quelque idée pour me dépetrer de ce piège ..... !
Merci d'avance
Pounet95