Bonjour à tous,
Je suis entrain de développer un petit outil de gestion d'inventaire informatique sous Excel 2010. J'ai donc différentes feuilles que l'on remplie grâce à des formulaires créés par Userform et contrôlé par VBA.
Toutes mes fonctionnalités marchent mais je viens de me rendre compte d'un gros problème sur mes champs contenant des dates.
J'ai donc plusieurs formulaires différents qui contiennent plusieurs champs TextBox dans lequel je renseigne des dates au format jj/mm/aaaa. (pas de contrôle sur cette écriture, je l'écris moi-même dans ce format)
Prenons l'exemple suivant :
1) Je précise la date d'achat d'un ordinateur dans un champs textbox (Nommé C_DateAchat) : 16/08/2014
2) Je clique sur mon bouton enregistrer qui vient ranger la valeur dans la cellule correspondante de mon tableau : feuille.Cells(ligne, 7) = C_DateInstallation.Value. L'enregistrement fonctionne bien, pas de soucis.
3) A la prochaine ouverture, la récupération de la valeur de la cellule par mon formulaire fonctionne bien aussi : C_DateInstallation.Value = feuille.Cells(ligne, 7).
Le problème apparait maintenant :
4) La prochaine fois que je clique sur mon bouton enregistrer, ma date est écrite dans sa cellule au format mm/jj/aaaa, puis si je reclique à nouveau sur Enregistrer, ma date est écrite au format jj/mm/aaaa. Quasi tous mes textbox avec des dates font ce yoyo alternant jj/mm et mm/jj.
Ce problème apparait sur tout mes formulaire (6 différents) mais quelques rares champs n'y sont pas soumis alors que je ne fais rien de plus ou de moins sur ceux-ci.
Je n'utilise aucune fonction pour le moment sur ces dates qui pourrait les modifier, je récupère juste leur valeur dans la cellule ou je viens l'écrire comme indiqué ci-dessus.
J'ai forcé pour les colonnes en question où je renseignais les dates le format jj/mm/aaaa dans l'interface graphique mais le problème continue.
Avez-vous une idée d'où peut venir mon problème ? J'avoue commencer à devenir fou Et je pris pour que ça se corrige !
Edit : Le problème d'inversion semble connu sur Internet et confirme ce que je pensais, la date d'entrée est bien considéré en format français jj/mm/aaaa alors que son écriture est au format américain mm/jj/aaaa. Mes dates ne changeant pas sont celles dont le jour est supérieur à 12.
Je suis allé voir mes options régionales, tout est ok. J'ai essayé de convertir les dates dans Données > Convertir > JMA, rien a changé. J'ai aussi forcé le format dans mon code directement avec feuille.Cells(ligne, 7) = Format(C_DateInstallation.Value, "dd/mm/yyyy" ), mais ne marche pas non plus.
Je vous remercie par avance de l'aide que vous m'apporterez.
Bonne fin de journée.
Message édité par solidxciter le 19-08-2014 à 13:51:45