date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

  • Initiateur de la discussion Initiateur de la discussion Gaby71
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gaby71

XLDnaute Junior
Bonjour,
Je reçois un fichier en .csv où une cellule est la date de création
une macro triture ce fichier pour créer un rapport en .xls et notamment de cette date pour nommer ce fichier (CVB302-2015-12-10-00)
J'ai créé la macro fin décembre , impeccable ...
mais en janvier, il manque des 0 (8/1/2015)
il me faudrait insérer dans ma macro quelques lignes de code pour mettre cette date à notre standard (08/01/2015).

Merci d'avance

Gaby
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Bonjour ,

un petit essai :

Code:
Sub gg()
Dim Journée As String, dateplus As String
Journée = "8/1/15"
dateplus = Format(Journée, "dd/mm/yyyy")
MsgBox "journée " & Journée & " dateplus " & dateplus
End Sub
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Bonjour.

Vous voulez quoi au final, une date ou du texte ?
Mettez ce code dans un module, exécutez Test et étudiez le texte du message :
VB:
Sub Test()
Dim V As Variant, Z As String
V = "8/1/2015": Z = Vf(V) & " est une donnée de type " & TypeName(V)
Z = Z & vbLf & "CDate(" & Vf(V) & ")": V = CDate(V): Z = Z & " = " & Vf(V) & " (donnée de type " & TypeName(V) & ")"
Z = Z & vbLf & "Format(" & Vf(V) & ", " & Vf("dd/mm/yyyy") & ")": V = Format(V, "dd/mm/yyyy"): Z = Z & " = " & Vf(V) & " (donnée de type " & TypeName(V) & ")"
MsgBox Z, vbInformation, "Test"
End Sub
Function Vf(ByVal Valeur)
If VarType(Valeur) = vbString Then Vf = """" & Replace(Valeur, _
   """", """""") & """" Else Vf = Trim$(Str$(Valeur))
End Function
 
Dernière édition:
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Oups ,

Le / est un caractère interdit pour la sauvegarde de fichier ,

donc plutot ceci

Code:
Sub gg()
Dim Journée As String, dateplus As String
Journée = "8/1/15"
dateplus = Format(Journée, "dd-mm-yyyy")
MsgBox "journée " & Journée & " dateplus " & dateplus
End Sub
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Re, bonjour Dranreb


Un chouia plus court, bis
(lol: faut bien rigoler camarchepas en cette matinée pluvieuse 😉)

Code:
Sub b()
chaine = "8/1/15"
MsgBox Replace(DateValue(chaine), "/", "-")
End Sub
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Merci à Tous

Bonjour

De retour au bureau, je joins en fichier attaché un extrait de ma page excel où il y a cette date issue d'un fichier .csv venant des USA

j'ai déjà une macro qui la transforme en JJ/MM/aaaa.
Je l'avais fait fin decembre et en janvier , il manque des zero

Merci de m'avoir aidé

je vais appliquer ce que vous m'avez donné

Merci encore

@+

Gaby
 

Pièces jointes

Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Bonjour.

Il n'y a toujours pas de macro dans votre classeur joint, alors on ne peut pas vous dire comment adapter au mieux la macro que vous aviez écrite.
Regardez ça :
VB:
Sub test()
Dim Tspl() As String
Tspl = Split("2/26/2015", "/")
MsgBox Format(DateSerial(Tspl(2), Tspl(0), Tspl(1)), "dd-mm-yyyy")
End Sub
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Bonjour

La macro qui est faite bien en sert en aval pour nommer le fichier

debut janvier , j'ai vu qu'il me manque des zero dans la date de la cellule C3 du dernier fichier attaché

Alors je voudrais avoir quelques lignes de code pour compléter "C3" quand c'est necessaire pour avoir "mm/jj/aaaa"

je n'ai pas su adapter les"MsgBox " en valeur de cellules...

Merci d'avance
 
Re : date sans ZERO à transformer en 3 fois 2 caractéres ou 2x2 +" 2015"

Si à un moment donné en amont vous avez une expression Z en String représentant une date anglaise et que vous voulez mettre une donnée date dans une cellule ligne L colonne C de la feuille active faites :
VB:
Dim TSpl() As String
Tspl = Split(Z, "/")
Cells(L, C).Value = DateSerial(Tspl(2), Tspl(0), Tspl(1))
En l'occurrence :
VB:
Dim TSpl() As String
Tspl = Split([C3].Value, "/")
NomFic = Format(DateSerial(Tspl(2), Tspl(0), Tspl(1)), "dd-mm-yyyy")
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour