XL 2019 VBA - code formatage date

douguy

XLDnaute Junior
Bonjour le forum.

Est ce que quelqu'un saurait m'expliquer pourquoi ce code ne fonctionne pas correctement?

l'idée est de récupérer une date dans une cellule (en B2) (format jj.mm.aa) non reconnue comme date
cette procédure sert a constituer une partie du nom d'un fichier selon la valeur de la cellule

le problème est que ca foire et ca finit par 301299 (aujourd'hui ca devrait me donner 19052021)

Merci à ceux qui saurait corriger ça.



Public Function formatDateForFileName()

'formattage dd mm yyyy

'gestion jours
On Error Resume Next
ReportDate = CDate(sh_res_fcst.Cells(2, 1).Value)
Temp = Day(ReportDate)
If (Temp < 10) Then
Temp = "0" & Temp
End If
StringDate = CStr(Temp)

'gestion mois

Temp = Month(ReportDate)
If (Temp < 10) Then
Temp = "0" & Temp
End If

StringDate = CStr(StringDate & Temp)

'gestion ann_e

Temp = Year(ReportDate)
Temp = CStr(Right(Temp, 2))
formatDateForFileName = StringDate & Temp

End Function
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Douguy,
Le passage de paramètres ne me semble pas correct.
J'ai éssayé ça avec succés :

VB:
Public Function formatDateForFileName(DateIn As Date)
'formattage dd mm yyyy
'gestion jours
On Error Resume Next
ReportDate = CDate(DateIn)
Temp = Day(ReportDate)
If (Temp < 10) Then
Temp = "0" & Temp
End If
StringDate = CStr(Temp)
'gestion mois
Temp = Month(ReportDate)
If (Temp < 10) Then
Temp = "0" & Temp
End If
StringDate = CStr(StringDate & Temp)
'gestion ann_e
Temp = Year(ReportDate)
Temp = CStr(Right(Temp, 2))
formatDateForFileName = StringDate & Temp

End Function
et l'appel se fait par =formatDateForFileName(B2)
si en B2 on a 19/05/2021 alors la fonction répond 190521. ( à cause du Temp = CStr(Right(Temp, 2)) )
si vous voulez 19052021 comme demandé alors supprimez cette ligne.
 

Statistiques des forums

Discussions
311 730
Messages
2 081 981
Membres
101 855
dernier inscrit
alexis345