Conversion format date

Le
ThierryP
Bonjour le forum,

Petit souci avec les formats de date.

Comment (en VBA) déterminer quel est le système utilisé (anglo-saxon =
/
français ou équivalent) et également ? Avec Ofice XP en français, j=
e
me sers de la date pour créer un nom de fichier comme ceci :

Nom_Fichier = Right(Range("Date_Rapport"), 4) &
Mid(Range("Date_Rapport"), 4, 2) & _
Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")

et j'obtiens un nom de fichier comme ceci : 20110309_Toto

Avec Office 2007 en anglais, ma variable Nom_Fichier devient : 2011/23/
_Toto et le message d'erreur me renvoie :
Impossible de créer le fichier : Reports
201123ombre_aléatoire ???????

Je patauge un peu ! Si une âme charitable passe par là, quelques
explications ne seraient pas de refus !!!
Merci d'avance
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
DanielCo
Le #23189221
Bonjour,
Essaie :
Range("Date_Rapport") = CDate(Range("Date_Rapport"))
Nom_Fichier = Right(Range("Date_Rapport"), 4) & _
Mid(Range("Date_Rapport"), 4, 2) & _
Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")
Cordialement.
Daniel


Bonjour le forum,

Petit souci avec les formats de date....

Comment (en VBA) déterminer quel est le système utilisé (anglo-saxon /
français ou équivalent) et également ? Avec Ofice XP en français, je
me sers de la date pour créer un nom de fichier comme ceci :

Nom_Fichier = Right(Range("Date_Rapport"), 4) &
Mid(Range("Date_Rapport"), 4, 2) & _
Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")

et j'obtiens un nom de fichier comme ceci : 20110309_Toto

Avec Office 2007 en anglais, ma variable Nom_Fichier devient : 2011/23/
_Toto et le message d'erreur me renvoie :
Impossible de créer le fichier : Reports
201123nombre_aléatoire ???????

Je patauge un peu ! Si une âme charitable passe par là, quelques
explications ne seraient pas de refus !!!
Merci d'avance
ThierryP
Le #23190231
Bonjour Daniel,

Malheureusement, aucun changement. CDate m'aide quand même à écrire
dans la cellule au format dd/mm/yyyy, ce qui est un progrès !
Il faut que je découpe ma date différemment suivant le système de
date......d'où ma nouvelle question !!

Comment puis-je récupérer l'info concernant le système de date
utilisé ? En espérant que la syntaxe soit la même entre Office XP,
2007 et 2010.......

Merci d'avance


On 9 mar, 13:10, DanielCo
Bonjour,
Essaie :
Range("Date_Rapport") = CDate(Range("Date_Rapport"))
Nom_Fichier = Right(Range("Date_Rapport"), 4) & _
Mid(Range("Date_Rapport"), 4, 2) & _
Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")
Cordialement.
Daniel

> Bonjour le forum,

> Petit souci avec les formats de date....

> Comment (en VBA) d terminer quel est le syst me utilis (anglo-saxon /
> fran ais ou quivalent) et galement ? Avec Ofice XP en fran ais, je
> me sers de la date pour cr er un nom de fichier comme ceci :

> Nom_Fichier = Right(Range("Date_Rapport"), 4) &
> Mid(Range("Date_Rapport"), 4, 2) & _
>                 Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")

> et j'obtiens un nom de fichier comme ceci : 20110309_Toto

> Avec Office 2007 en anglais, ma variable Nom_Fichier devient : 2011/23/
> _Toto et le message d'erreur me renvoie :
> Impossible de cr er le fichier : Reports
> 201123nombre_al atoire ???????

> Je patauge un peu ! Si une me charitable passe par l , quelques
> explications ne seraient pas de refus !!!
> Merci d'avance
ThierryP
Le #23190221
Bonjour,

Désolé si ce message arrive 2 fois, je ne vois pas ma réponse.......

CDate n'a rien changé, mais m'a aidé à écrire au format dd/mm/yyyy
dans la cellule. Je vais devoir découper différemment suivant le
système de date utilisé d'où :

Comment récupérer en VBA cette information ? LA syntaxe est-elle la
même entre Office XP, 2007 et 2010 ?

Merci d'avance


On 9 mar, 13:10, DanielCo
Bonjour,
Essaie :
Range("Date_Rapport") = CDate(Range("Date_Rapport"))
Nom_Fichier = Right(Range("Date_Rapport"), 4) & _
Mid(Range("Date_Rapport"), 4, 2) & _
Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")
Cordialement.
Daniel

> Bonjour le forum,

> Petit souci avec les formats de date....

> Comment (en VBA) d terminer quel est le syst me utilis (anglo-saxon /
> fran ais ou quivalent) et galement ? Avec Ofice XP en fran ais, je
> me sers de la date pour cr er un nom de fichier comme ceci :

> Nom_Fichier = Right(Range("Date_Rapport"), 4) &
> Mid(Range("Date_Rapport"), 4, 2) & _
>                 Left(Range("Date_Rapport"), 2) & "_" & Range("Nom")

> et j'obtiens un nom de fichier comme ceci : 20110309_Toto

> Avec Office 2007 en anglais, ma variable Nom_Fichier devient : 2011/23/
> _Toto et le message d'erreur me renvoie :
> Impossible de cr er le fichier : Reports
> 201123nombre_al atoire ???????

> Je patauge un peu ! Si une me charitable passe par l , quelques
> explications ne seraient pas de refus !!!
> Merci d'avance
Modeste
Le #23190261
Bonsour®

petithory.thierry a écrit
CDate n'a rien changé, mais m'a aidé à écrire au format dd/mm/yyyy
dans la cellule. Je vais devoir découper différemment suivant le
système de date utilisé d'où :

Comment récupérer en VBA cette information ? LA syntaxe est-elle la
même entre Office XP, 2007 et 2010 ?



Range("Date_Rapport") = CDate(Range("Date_Rapport"))
Nom_Fichier = Format([date_rapport],"yyyymmdd")&"_"& Range("Nom")
DanielCo
Le #23190361
Select Case Application.International(xlDateOrder)
Case 0: MsgBox "mm/jj/aaaa"
Case 1: MsgBox "jj/mm/aaaa"
Case 2: MsgBox "mm/jj/aaaa"
End Select
Daniel


Bonjour Daniel,

Malheureusement, aucun changement. CDate m'aide quand même à écrire
dans la cellule au format dd/mm/yyyy, ce qui est un progrès !
Il faut que je découpe ma date différemment suivant le système de
date......d'où ma nouvelle question !!

Comment puis-je récupérer l'info concernant le système de date
utilisé ? En espérant que la syntaxe soit la même entre Office XP,
2007 et 2010.......

Merci d'avance
DanielCo
Le #23190351
Oups...
Select Case Application.International(xlDateOrder)
Case 0: MsgBox "mm/jj/aaaa"
Case 1: MsgBox "jj/mm/aaaa"
Case 2: MsgBox "aaaa/mm/jj"
End Select
Daniel


Select Case Application.International(xlDateOrder)
Case 0: MsgBox "mm/jj/aaaa"
Case 1: MsgBox "jj/mm/aaaa"
Case 2: MsgBox "mm/jj/aaaa"
End Select
Daniel


Bonjour Daniel,

Malheureusement, aucun changement. CDate m'aide quand même à écrire
dans la cellule au format dd/mm/yyyy, ce qui est un progrès !
Il faut que je découpe ma date différemment suivant le système de
date......d'où ma nouvelle question !!

Comment puis-je récupérer l'info concernant le système de date
utilisé ? En espérant que la syntaxe soit la même entre Office XP,
2007 et 2010.......

Merci d'avance
michdenis
Le #23190461
Bonjour,

Un nom de fichier ne peut pas contenir ce caractère : "/" et ce, indépendamment
du format date que tu utilises. Tu dois le remplacer par "-" au besoin.

La fonction de conversion Cdate() utilise TOUJOURS le format date "court" défini
dans le panneau de configuration de Windows. Pour être certain du format date
qu'affiche ta variable :

En supposant que la date dans la cellule "Date_Rapport" est une
date dont Excel reconnaît le format :

Dim MyVar As String

MyVar = Format(cdate(Range("Date_Rapport")),"YYYY-mm-dd") & "_Toto"

Et tu vas pouvoir enregistrer ton fichier en utilisant la variable MyVar

'Version précédente à Excel 2007
ThisWorkbook.SaveAs chemin & MyVar & ".xls", FileFormat:=xlExcel7
'Ou
'Pour Excel 2007 et 2010
ThisWorkbook.SaveAs chemin & MyVar & ".xlsx", FileFormat:=xlExcel8

Pour la version 2007 et 2010, tu dois adapter le xlsx ou xlsm selon que ton
classeur contient des macros ou pas.

MichD
--------------------------------------------
ThierryP
Le #23190481
Au final, Modeste gagne sur le fil !! Sa solution fonctionne pour ce
cas précis.

Mais ta réponse m'a fait découvrir une nouvelle fois l'étendue de mon
ignorance !! Je vais pouvoir gérer un peu mieux ces diférentes
versions :-)))

Merci à tous les deux.


On 9 mar, 18:21, DanielCo
Oups...
Select Case Application.International(xlDateOrder)
    Case 0: MsgBox "mm/jj/aaaa"
    Case 1: MsgBox "jj/mm/aaaa"
    Case 2: MsgBox "aaaa/mm/jj"
End Select
Daniel

> Select Case Application.International(xlDateOrder)
>     Case 0: MsgBox "mm/jj/aaaa"
>     Case 1: MsgBox "jj/mm/aaaa"
>     Case 2: MsgBox "mm/jj/aaaa"
> End Select
> Daniel

>> Bonjour Daniel,

>> Malheureusement, aucun changement. CDate m'aide quand m me crire
>> dans la cellule au format dd/mm/yyyy, ce qui est un progr s !
>> Il faut que je d coupe ma date diff remment suivant le syst me de
>> date......d'o ma nouvelle question !!

>> Comment puis-je r cup rer l'info concernant le syst me de date
>> utilis ? En esp rant que la syntaxe soit la m me entre Office XP,
>> 2007 et 2010.......

>> Merci d'avance
ThierryP
Le #23190791
Egalité avec Modeste....C'est la même réponse :-))))

Merci à tous d'être toujours présents et infatigables !!


On 9 mar, 18:52, "michdenis"
Bonjour,

Un nom de fichier ne peut pas contenir ce caract re : "/" et ce, ind pend amment
du format date que tu utilises. Tu dois le remplacer par "-" au besoin.

La fonction de conversion Cdate() utilise TOUJOURS le format date "court" d fini
dans le panneau de configuration de Windows. Pour tre certain du format d ate
qu'affiche ta variable :

En supposant que la date dans la cellule "Date_Rapport" est une
date dont Excel reconna t le format :

Dim MyVar As String

MyVar = Format(cdate(Range("Date_Rapport")),"YYYY-mm-dd") & "_Toto"

Et tu vas pouvoir enregistrer ton fichier en utilisant la variable MyVar

'Version pr c dente Excel 2007
ThisWorkbook.SaveAs chemin & MyVar & ".xls", FileFormat:=xlExcel7
'Ou
'Pour Excel 2007 et 2010
ThisWorkbook.SaveAs chemin & MyVar & ".xlsx", FileFormat:=xlExcel8

Pour la version 2007 et 2010, tu dois adapter le xlsx ou xlsm selon que t on
classeur contient des macros ou pas.

MichD
--------------------------------------------
Publicité
Poster une réponse
Anonyme