Format Date pour l'internationale

  • Initiateur de la discussion ChristianS
  • Date de début
C

ChristianS

Guest
Bonsoir à tous,
Quelqu'un aurait-il un exemple pour rendre compatible le format date entre différents oays ?
J'ai écrit des macros qui conditionnent le formatage des cellules contenant des dates pour qu'elles changent de couleur selon que le jour soit férié (fêtes fixes ou indexées sur Pâques) ou non. Ces conditions sont écrites dans une boucle qui trace la mise en forme et remplit les cellules avec les dates au format jj/mm. Pour ce programme du type planning la date de départ est choisie par l'utilisateur.
Le programme fonctionne parfaitement en France mais est transparent en Allemagne ! Càd que tout fonctionne hormis ce changement de couleur demandé. Il n'y a pas de message d'erreur
Voilà un problème interessant.
Merci d'avance
ChS
 
Y

Yeahou

Guest
Bonjour ChristianS, le forum

A part travailler sur des données interprétées, je ne vois pas.
il suffit pour cela d'extraire des dates séparément le jour, mois, année
on peut ensuite travailler avec des données toujours identiques quelque soit les conventions de date initialisées sur l'ordinateur de travail.

Cordialement, a+
 
C

ChristianS

Guest
Merci de ta réponse Yeahou,
mais c'est ce que je fait déjà en extrayant le jour puis le mois et enfin l'année. Seulement à l'affichage le format est "jj/mm/aaaa" en France et est "jj.mm.aaaa" en Allemagne (différence de séparateur).
Je pense qu'il doit y avoir une issue du type :
Application.International(xlDateSeparator)
pour s'ffranchir de toutes ces reconnaissances de caractères.
Seulement je ne l'ai jamais mis en oeuvre.
Alors si qq sait faire....
A +
ChS
 
Y

Yeahou

Guest
Re Bonjour

La, je ne comprends plus ton problème. Pour l'analyse, la solution ci dessus fonctionne.
Si il s'agit de recomposer des dates
MsgBox Application.International(xlDateSeparator)
te donnera le séparateur utilisé
MsgBox Application.International(xIDateOrder)
te donnera l'ordre jour/mois/année
0 = mois-jour-année
1 = jour-mois-année
2 = année-mois-jour
MsgBox Application.International(xI4DigitYears)
te dira si l'année est sur deux ou quatre chiffres
True pour 4, False pour deux

Avec cela tu peux recomposer facilement tes dates. De toute façon, quelque soit le format, une date = 1 chiffre pour Excel, le 1 étant le 01/01/1900 (01/01/1904 sur Mac), le reste est une question d'affichage.

A+
 
C

ChristianS

Guest
Merci Yeahou,
Bon sang, mais c'est bien sûr !
C'est si gros que je me suis planté dedans
Mes comparaisons date du jour et jours fériés doivent se faire sur l'écriture date en VBA (5 chiffres actuellement), les machines se chargeant toutes seules du reste.
A propos les fonctions Application.International(xl........) sont-elles en lecture seule ou lecture-écriture ?
Merci encore pour cette remise sur les rails.
ChS
 
Y

Yeahou

Guest
Bonjour Christians, le forum

Ce sont des paramêtres en lecture seule car ils ne font que préciser les paramètres régionaux définis dans windows (accés par panneau de config/paramêtres régionaux et linguistiques)

A+
 
C

ChristianS

Guest
Bonsoir le Forum,
Le problème est résolu, les jours fériés fixes et mobiles s'allument en rouge aussi bien en France qu'en Allemagne.
Merci encore à Yeahou pour ses bonnes remarques.
A +
ChS
 

Statistiques des forums

Discussions
312 762
Messages
2 091 809
Membres
105 075
dernier inscrit
sdalmas