Conversion de texte en date ( en VBA )

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Modeste
Le #19063901
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
MichDenis
Le #19063801
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"
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
Corto
Le #19063781
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



Pounet95
Le #19063741
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



Pounet95
Le #19065311
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



Publicité
Poster une réponse
Anonyme