Détecter format date de Windows xp pro

Le
GFortin
Allô!

À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on fusionne
les nouveaux rendez-vous et, possiblement, on peut enlever les anciens.

Certaines machines ont le format de date (22/02/2008) et d'autres
(2008/02/22 la majorité des machines). Les rendez-vous sont inscrits dans
les feuilles Excel sous le format 2008/02/22.

Si le format de la date de la machine (Options régionales et linguistiques)
est 2008/02/22, je fusionne et efface des rendez-vous sans problème.

Mais si le format de la machine est différent de 2008/02/22, certains
rendez-vous ne s'effacent pas. Ceux dont le jour est 12 et moins; confusion
entre le jour et le mois.

Quel serait le meilleur moyen de détecter le format de la date de la machine
afin d'en ternir compte au moment d'effacer, via macro vba, des rendez-vous
dans Outlook 2003 ?

Merci de votre attention.

GF
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
Youky
Le #5173911
Bonjour,
Essai ceci, il y a peut être de meilleurs solutions mais je ne peux tester

If Mid(Date, 3, 1) = "/" Then
'date Francaise
Else
'Anglaise
End If

Youky

"GFortin"
Allô!

À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on
fusionne les nouveaux rendez-vous et, possiblement, on peut enlever les
anciens.

Certaines machines ont le format de date (22/02/2008) et d'autres
(2008/02/22 la majorité des machines). Les rendez-vous sont inscrits dans
les feuilles Excel sous le format 2008/02/22.

Si le format de la date de la machine (Options régionales et
linguistiques) est 2008/02/22, je fusionne et efface des rendez-vous sans
problème.

Mais si le format de la machine est différent de 2008/02/22, certains
rendez-vous ne s'effacent pas. Ceux dont le jour est 12 et moins;
confusion entre le jour et le mois.

Quel serait le meilleur moyen de détecter le format de la date de la
machine afin d'en ternir compte au moment d'effacer, via macro vba, des
rendez-vous dans Outlook 2003 ?

Merci de votre attention.

GF



Frédéric Sigonneau
Le #5173411
Bonsoir,

Sub test()
MsgBox Application.International(xlMDY)
End Sub

Si cette ligne de code renvoie False, Excel considère, d'après l'aide, que le
format de date utilisé est jour/mois/année. Donc dans ce cas, et si tu n'as que
2 formats possibles, cela devrait te permettre de reconvertir ces dates-là au
format qui t'intéresse, peut-être avec ce genre de code :

Sub test2()
D = "24/02/2008"
If Application.International(xlMDY) = False Then
MsgBox Format(DateValue(D), "yyyy/mm/dd")
End If
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Allô!

À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on fusionne
les nouveaux rendez-vous et, possiblement, on peut enlever les anciens.

Certaines machines ont le format de date (22/02/2008) et d'autres
(2008/02/22 la majorité des machines). Les rendez-vous sont inscrits dans
les feuilles Excel sous le format 2008/02/22.

Si le format de la date de la machine (Options régionales et linguistiques)
est 2008/02/22, je fusionne et efface des rendez-vous sans problème.

Mais si le format de la machine est différent de 2008/02/22, certains
rendez-vous ne s'effacent pas. Ceux dont le jour est 12 et moins; confusion
entre le jour et le mois.

Quel serait le meilleur moyen de détecter le format de la date de la machine
afin d'en ternir compte au moment d'effacer, via macro vba, des rendez-vous
dans Outlook 2003 ?

Merci de votre attention.

GF




GFortin
Le #5173231
Allô!

Merci de ces bouts de codes.
Je viens de comprendre comment gerer mes erreurs au moment d'effacer les
rendez-vous.
Il ne reste qu'à insérer cela dans mon code.

J'apprécie beaucoup.

GFortin




"Frédéric Sigonneau" a écrit dans le message de news:

Bonsoir,

Sub test()
MsgBox Application.International(xlMDY)
End Sub

Si cette ligne de code renvoie False, Excel considère, d'après l'aide, que
le format de date utilisé est jour/mois/année. Donc dans ce cas, et si tu
n'as que 2 formats possibles, cela devrait te permettre de reconvertir ces
dates-là au format qui t'intéresse, peut-être avec ce genre de code :

Sub test2()
D = "24/02/2008"
If Application.International(xlMDY) = False Then
MsgBox Format(DateValue(D), "yyyy/mm/dd")
End If
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Allô!

À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on
fusionne les nouveaux rendez-vous et, possiblement, on peut enlever les
anciens.

Certaines machines ont le format de date (22/02/2008) et d'autres
(2008/02/22 la majorité des machines). Les rendez-vous sont inscrits dans
les feuilles Excel sous le format 2008/02/22.

Si le format de la date de la machine (Options régionales et
linguistiques) est 2008/02/22, je fusionne et efface des rendez-vous sans
problème.

Mais si le format de la machine est différent de 2008/02/22, certains
rendez-vous ne s'effacent pas. Ceux dont le jour est 12 et moins;
confusion entre le jour et le mois.

Quel serait le meilleur moyen de détecter le format de la date de la
machine afin d'en ternir compte au moment d'effacer, via macro vba, des
rendez-vous dans Outlook 2003 ?

Merci de votre attention.

GF




GFortin
Le #5173181
Allô!

La piste était EXCELente.
En allant relire l'aide, j'ai trouvé

Application.International(xlDateOrder) qui renvoie :

0 = mois-jour-année
1 = jour-mois-année
2 = année-mois-jour

Ça résoud toutes mes interrogations et facilite grandement intération dans
mon code.

Merci encore une nouvelle fois.
Comme disent les anglais : "You make my day!"

GFortin


"Frédéric Sigonneau" a écrit dans le message de news:

Bonsoir,

Sub test()
MsgBox Application.International(xlMDY)
End Sub

Si cette ligne de code renvoie False, Excel considère, d'après l'aide, que
le format de date utilisé est jour/mois/année. Donc dans ce cas, et si tu
n'as que 2 formats possibles, cela devrait te permettre de reconvertir ces
dates-là au format qui t'intéresse, peut-être avec ce genre de code :

Sub test2()
D = "24/02/2008"
If Application.International(xlMDY) = False Then
MsgBox Format(DateValue(D), "yyyy/mm/dd")
End If
End Sub


FS
---
Frédéric Sigonneau
http://frederic.sigonneau.free.fr

Allô!

À l'aide de bouts de code VBA glanés ici et là, j'ai construit un fichier
Excel 2003 pour fusionner des rendez-vous dans Outlook. Les données des
rendez-vous sont lues dans des feuilles. Puis, l'année suivante, on
fusionne les nouveaux rendez-vous et, possiblement, on peut enlever les
anciens.

Certaines machines ont le format de date (22/02/2008) et d'autres
(2008/02/22 la majorité des machines). Les rendez-vous sont inscrits dans
les feuilles Excel sous le format 2008/02/22.

Si le format de la date de la machine (Options régionales et
linguistiques) est 2008/02/22, je fusionne et efface des rendez-vous sans
problème.

Mais si le format de la machine est différent de 2008/02/22, certains
rendez-vous ne s'effacent pas. Ceux dont le jour est 12 et moins;
confusion entre le jour et le mois.

Quel serait le meilleur moyen de détecter le format de la date de la
machine afin d'en ternir compte au moment d'effacer, via macro vba, des
rendez-vous dans Outlook 2003 ?

Merci de votre attention.

GF




Publicité
Poster une réponse
Anonyme