Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remplacer les "/" dans une chaine de caractere par des points en VBA

Doudou42

XLDnaute Nouveau
Bonjour,
j'ai regarder dans le forum mais je n'ai pas trouvé ma solution ou je n'ai pas bien vu (ce qui n'est pas impossible... et je m'en excuse.)
J'ai un variable dat qui me renvoie date + heure.
j'arrive a la tronquer pour n'en garder que la date mais souhaitant utiliser cette date pour la mettre dans le futur nom de fichiers, il faut que je remplace les "/" par des . pour que le nom soit valide.
auriez vous une solution pour m'aider.
merci
Doudou42
 

Doudou42

XLDnaute Nouveau
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Bon j'ai trouver une solution mais je ne trouve pas cela tres propre :
un melande de left(str,x)+ mid(str,y,z).
voila
si vous avez mieux je vous en remercie d'avance
Doudou42
 

Gorfael

XLDnaute Barbatruc
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Salut
=SUBSTITUE(A1;"/";"-") remplave tous les "/" du texte en A1 par "-"
A+
 

myDearFriend!

XLDnaute Barbatruc
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Bonjour Doudou42, Gorfael, le Forum,

Sauf erreur, notre ami Doudou42 souhaiterait une solution par VBA...

Si la donnée de départ est au format chaine de caractères alors :
Code:
[SIZE=2]Dim Chaine[COLOR=navy] As String[/COLOR]
    Chaine = "18/08/06"     [COLOR=green]'Format chaine de caractères[/COLOR]
    MsgBox Replace(Chaine, "/", ".")[/SIZE]

Par contre, si j'ai bien compris :
Si la variable Dat est au format date à l'origine, pas la peine de la "tronquer" pour enlever la notion d'heure avant traitement, il suffit de faire :
Code:
[SIZE=2]Dim Dat[COLOR=navy] As Date[/COLOR]
    Dat = Now                 [COLOR=green]'Format DATE + HEURE[/COLOR]
    MsgBox Format(Dat, "dd.mm.yy")[/SIZE]
Cordialement,
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Bonjour Didier, Doudou, Gorfael, le Forum

Que l'on peut même encore raccourcir sans passer par une Variable...

MsgBox Format(Date, "dd.mm.yy")

Quoique moi je favoriserais...

MsgBox Format(Date, "yy.mm.dd") (si l'on parle de nom de fichiers, bien plus facile à trier ensuite....)

Bon App

@+Thierry
 

myDearFriend!

XLDnaute Barbatruc
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Bonjour _Thierry,

Heu... Thierry, la variable c'était pour expliquer à Doudou42...
Par ailleurs, pour une donnée incluant la Date et l'Heure, Now me semblerait plus adaptée que Date, non ?

Quant à "yy.mm.dd" pour pouvoir trier les fichiers plus facilement, on est tout à fait d'accord là. Cela dit, j'ai plutôt l'habitude d'utiliser pour ma part "yy-mm-dd" qui permet de réserver le "." pour la séparation du suffixe dans le nom de fichier. Mais ça, c'est une préférence perso là aussi...

Bonne journée.
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Salut Cher Ami

Mais Doudou (dis donc !!) il n'a pas écrit "j'arrive a la tronquer pour n'en garder que la date"

Donc "Now" c'est comme To Be or Not To Be !!! lol ou alors Avant l'heure c'est pas l'heure après l'heure c'est plus l'heure.... Mais bon j'ai faim !

Bon App

@+Thierry
 

myDearFriend!

XLDnaute Barbatruc
Re : Remplacer les "/" dans une chaine de caractere par des points en VBA

Salut my Friend

Mais Doudou il a aussi écrit "J'ai un variable dat qui me renvoie date + heure" alors, comme un imbécile, moi j'ai pensé que remplacer une valeur connue Date + Heure par la fonction Date (qui ne donne que la date du jour, je le rappelle) n'était pas franchement la meilleure idée pour aider notre ami mais bon... Je ne vais pas poursuivre d'avantage et te souhaite un bon appétit.

Pardon Doudou42 d'avoir un peu accaparé ton fil...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…