date format anglais, erreur montant affiché mauvaise date autre feuille

news

XLDnaute Impliqué
Bonjour à tous du forum,

j'ai établi des formulaires et des macros avec Excel2003 en version Windows français.

Ayant un autre ordinateur avec Windows en anglais, les montants ne sont pas correctement affichés du à la date.

J'ai modifié le format de date dans les macros en mm/jj/aaaa afin d'afficher correctement la date en anglais, mais les montants ne sont pas affichés à la date juste.

Ci-joint un fichier explicite montrant les dates et montants affichés dans la feuil2.
La date de la feuil2 est reprise d'un formulaire ou on a saisi la date janv./02/2011, format (mmm/jj/aaaa).

Pourquoi le montant de la date de la feuil2 n'est pas correctement affichée dans la feuil1 ?,
respectivement pourquoi la date avec format 01/02/2011 (janv-02-2011)(mmm/jj/aaaa), reprise d'un formulaire, n'est pas correctement affichée dans la feuil2 =(jj/mmm/aaaa).

Je ne sais pas comment résoudre.
Merci d'avance d'astuces éventuels.

news
 

Pièces jointes

  • date_anglais_erreur_date.xls
    35.5 KB · Affichages: 72
Dernière édition:

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour à tous du forum,

L'erreur de format date de la Feuil2 provient du formulaire,
dont ci-joint au fichier Excel l'apercu du code/macro utilisé dans le formulaire.


Code:
Private Sub CommandButton5_Click()          ' button "Ok", the data are put in Worksheets("Feuil2")
Dim VarDerL As Integer
Dim c As Range

On Error Resume Next
    If Not IsDate(Textbox2) Then  
…
CDate(Textbox2.Text)

IF(CDate(Textbox2.Text))>0 Then
VarDerL = Sheets("Feuil2").Range("A65536").End(xlUp).Row + 1
With Sheets("Feuil2")
.Range("B" & VarDerL).Value = CDate(Textbox2.Value)   
End With
End If
End Sub



Comment modifier pour avoir le bon format date ?

news
 

Pièces jointes

  • data..zip
    12.2 KB · Affichages: 45
Dernière édition:

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour,

Re:
le format suivant ne résolue non plus,

...
With Sheets("Feuil2")
.Range("B" & VarDerL).Value = CDate(TextBox2.Value)
.Range("B" & VarDerL).NumberFormat = "mmm/dd/yyyy"

End With


car en cliquant sur le bouton "OK" au formulaire, la date p.ex. mise de janv./02/2011 au formulaire,
est reportée dans la Feuil2 avec la date de févr./01/2011 !!
mais devrait être janv./02/2011.

J'essaie de trouver de solution mais ne trouve pas. :confused:
news
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour News

Bon, ton truc c'est comme un jeu de piste, je ne vois pas trop ce qui ne fonctionne pas, vu, qu'on ne voit aucune macro pour tester :confused:

Le mieux pour cerner le problème serait de fournir un exemple simple avec la macro qui pose problème.

Ou sinon, voir peut-être du côté de NumberFormatLocal.
 
Dernière édition:

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour MJ13 et à tous du forum,

Re:
c'est un fichier long avec beacuoup de feuilles et de formulaires.

J'ai limité le fichier à la feuil 1,2 et 3 et mis que le formulaire USF nécessaire.
En annulons toutes les autres, il s'en résulte qu'avec le fichier joint, apparemment cela fonctionne. oups.
A vérifier.
Alors la je ne sais pas trop comment résoudre le fichier initial.
news
 

Pièces jointes

  • data_verify.zip
    40.3 KB · Affichages: 45
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Re

De toute façon, c'est un problème récurent sur XLD, on a dèjà du mal avec des conversions Français-Français alors avec de l'Anglais-Français, cela me paraît encore plus dur.

Sinon, si j'avais ce problème sans trouver de solution, il faudrait tester les mois, jour et année suivant leur position du textbox2 puis avec une conversion en date, cela devrait fonctionner :).
 

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour MJ13 et à tous du forum,

J'ai fait plusieurs tests et remarqué si on met une date > 12e jour d'un mois, la solution est correcte,
par contre lorsque la date est <= que le 12e jour d'un mois, il y a erreur de date reportée.

Par exemple: 06/16/2011 (juil./16/2011) mis au formulaire USF = 06/16/2011 à la Feuil2 et est reporté correctement avec 06/16/2011 à la Feuil1,
par exemple: 05/28/2011 (mai/28/2011) mis au formulaire USF = 05/28/2011 à la Feuil2 et est reporté correctement avec 06/16/2011 à la Feuil1,
par contre: 02/06/2011 (fév./06/2011) mis au formulaire USF a donné la date de 02/06/2011 à la Feuil2 et a été reportée de date de 02/06/2011 à la feuil1, mais devrait être la date de fév./06/2011.

Lorsqu'on met dans la Textbox2 de USF une date < que le 12e jour d'un mois, par exemple la date 02/06/2011 (fév./06/2011) et puis on continue de mettre le montant dans la Textbox5, entretemps la date à tout à coup été changé automatiquement par Excel en 06/02/2011 !! :confused:

Peut-être est-cela la raison que la date n'est pas reportée correctement dans la Feuil2, mais je n'ai aucune idée comme bloquer ce changement automatique par Excel de format de date.

Ayant modifié dans Textbox2 le format en :
Me.Textbox2 = Format(Me.Textbox2, "mmm/dd/yyyy")

on remarque très bien quand la date a été changée automatiquement par Excel.

peut-être les pro d'Excel y voient la solution, :cool:

sinon bonne soirée,

news
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour news


Je ne suis pas un pro, mais, teste ce fichier:
 

Pièces jointes

  • date_anglais_erreur_date_formatBis.xls
    126.5 KB · Affichages: 81

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour MJ13 et à tous du forum,

j'ai testé et cela fontionne, presque parfaitement.

Uniquement lorsqu'on a mis la date dans Texbox2 de USF et aulieu de cliquer avec la souris dans une autre textbox, on clique sur le bouton TAB (bouton avec les 2 flèches) du clavier, la date est inversée, ou après la 2e fois en cliquant sur le bouton TAB.

par ex. janv./06/2011 donnera 06/juin/2011 !!

Autre possibilité de sélectionner ou de saisir une date dans Textbox2:
de sélectionner une date dans listbox2. La date est affichée dans Textbox2. Tout fonctionne correctement, mais de nouveau quand on se positionne par après avec le curser/la souris dans Textbox2 et on clique le bouton TAB (2 flèches) du clavier, la date est inversée !!

Quelles est la raison pourquoi Excel inverse la date, si date <=12 jours d'un mois ? :(

Est-ce le code 'Numberformat' mis dans VBA pour Textbox2 qui provoque l'inversion de la date ?,
car si on se postionne maintes fois avec la souris dans Textbox2, après avoir mis une date, chaque fois qu'on clique sur le bouton TAB (bouton avec les 2 flèches), la date s'inverse.

Est-ce possible de bloquer, de mettre unitilisable un bouton du clavier ?

Mais une autre difficulté sera alors si on utilise un clavier Qwertz ou Qwerty ou Azerty, le bouton change ? Comment trouver et fixer le bouton correct?

news
 

Pièces jointes

  • data,_format.zip
    40.4 KB · Affichages: 43
  • data,_format.zip
    40.4 KB · Affichages: 45
  • data,_format.zip
    40.4 KB · Affichages: 60
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Re

Essaye de remplacer par ce code:

Code:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'On Error Resume Next
'Dim Textbox2 As Date
'Stop
'    Me.Textbox2 = Format(Me.Textbox2, "dd/mm/yyyy")
    'Me.Textbox2 = Format(Me.Textbox2, "mmm/dd/yyyy")            'English version used
'    Me.Textbox2 = Format(Me.Textbox2, "mm/dd/yyyy")

If Textbox2 = "" Then
    Textbox2.SetFocus
    Textbox2.BackColor = RGB(255, 128, 128) ' Color - Salmon
Else
If Left(Val(Textbox2.Value), 2) > 12 Then dateATransf = Format(CDate(Textbox2), "dd/mm/yyyy") Else dateATransf = Format(CDate(Textbox2), "mm/dd/yyyy")
Me.Textbox2.Value = Format(dateATransf, "mmm/dd/yyyy")

End If
End Sub
 

news

XLDnaute Impliqué
Re : date format anglais, erreur montant affiché mauvaise date autre feuille

Bonjour MJ13 et à tous du forum,

Re: merci pour astuce,

J'ai trouvé autre solution: La date est sélectionnée dans listbox2 et j'ai ajouté le code suivant lors ouverture USF

Private Sub Userform_Initialize()
...
Textbox2.Enabled = False
Textbox2.Locked = True

...

merci beaucoup pour tous les astuces et explications. Ainsi j'ai fait plus de tests et essayé de trouver les raisons pourquoi Excel a inversé la date.

news
 
Dernière édition:

Statistiques des forums

Discussions
311 740
Messages
2 082 047
Membres
101 880
dernier inscrit
Anton_2024