Rajouter 2 caractères en avant avant derniere position

bonjour à tous,

j'ai des cellules sous la forme JJ/MM/AA

hors je voudrais les transformer en JJ/MM/AAAA

et pour cela je voudrais rajouter 20 entre le slash et les deux dernier chiffres.

ex : 04/06/13 en 04/06/2013

auriez vous un code VBA capable d'effectuer cela ?

Merci d'avance...

Bonjour

Clic droit sur la cellule

-->Format de la cellule/Nombre/Date/(*14/03/2011)/OK

Bonsoir,

Si tu veux le faire absolument par VBA, voici le code pour la colonne A par exemple :

Range("A:A").NumberFormat = "dd/mm/yyyy"

édit : Salut lean

merci pour vos réponses,

mais la cellule est un copié collé d'un fichier excel qui est lui meme issue d'un formulaire pdf

et mes dates sont au format jj/mm/aa et la solution de LEAN ou RAJA, ne fonctionne pas

apres l'import, j'ai le point d'exclamation dans la cellule avec le message :

"Date du texte avec une année à deux chiffres"

par contre manuellement si je rajoute 20, alors c'est ok, l'exclamation disparait et le format date est reconnue. c'est pour cela que je cherche une méthode pour automatiser le rajout du 20 par macro, d'ou ma question.

Bonsoir,

A tester si la valeur importée est du texte...

Cdlt

Option Explicit
Public Function modif_date(valeur As String) As Date
    modif_date = CDate(valeur)
End Function

Essayez ça :

Sub test()
Dim var As Date
var = Range("a1")
Range("a2") = CDate(var)
End Sub

Sinon nous donner la valeur exact qu'il y a dans la barre de formule quand la cellule est selecionnée...


Suite à la réponse de Jean-Eric : Il va falloir que j'apprène à faire des public function moi !

Euh la je suis un peu perdu !!

pouvez vous m'expliquer ce que ces codes vont faire ?

pour LEAN, ma cellule contient 10/06/13 idem pour la barre de formule.

mes deux cellules ayant le meme probleme sont D16 et D36,

je précise que les deux sont au format date type *14/03/2001 (format de cellule)

juste une precision bizarre !!

malgres le point d'exclamation et mon format de date bizarre identifié par excel (yy au lieu de yyyy)

je constate que cela n'a pas d'incidence sur mes autres calculs, en effet je me sert de ces dates importées pour calculer une vétusté, et pas de problème, il doit donc bien s'agir de date et non de texte ...

Envoyez le fichier qu'on le triture et qu'on le fasse ceder...

Re,

As-tu testé les solutions postées par Lean et moi même?

Un lien qui pourra peut-être t'aider...

Cdlt

http://support.microsoft.com/kb/459638/fr

ok, voici une exctraction (copie de la feuille)

on doit normalement y retrouver D16 et D36 avec le formt de date + l'exclamation.

c'est conforme à ce que j'observe tout de suite aprés la fin de l'importation des valeurs des cellules.

28classeur1.xlsx (15.97 Ko)
Sub test()
Range("d16") = CDate(Range("d16"))
Range("d36") = CDate(Range("d36"))
End Sub

bravo !! ça fonctionne

merci encore pour votre patience

et pour vos explications, et enfin bien sur pour avoir codé ma demande.

A bientot.

Re,

Comme supposé, les cellules étaient dans un format texte.

Le simple fait de multiplier les cellules par 1 suffit avoir des dates valides...

Sinon, la fonction cDate, fonctionne aussi.

Cdlt.

nb : sous 2010 (2007?), menu "Formules, "Vérification des erreurs", tu avais la solution sous les yeux

Je ne savais pas que cela fonctionnait aussi avec les dates le (*1).

Merci pour l'info Jean-Eric

Bonne soirée babouze...

Rechercher des sujets similaires à "rajouter caracteres derniere position"