Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

format récalcitrant

5 réponses
Avatar
izmi
Bonjour tout le monde ;

Sur un userform j'ai 3 textbox :
- textbox1 = date du début ;
- textbox2= date de la fin
- textbox3= durée ; (cad : textbox2-textbox1)
En cliquant sur un commandbox, le résultat de ces 3 textbox devrait être
reporté sur les cellues E2;F2 et G2.

Le problème c'est que, alors même que les textbox indiquent bien des dates
au format français, les cellules E2 et F2, adoptent le format anglosaxon !
La durée calculée figure bien dan le textbox3 mais ne se transcrit pas à la
cellule G2 !

J'ai presque tout essayé :

- Dans le code j'ai assigné le format français de plusieurs façons : cdate ;
"dd/mm/yyy"
- Au niveau des formats cellules, j'ai choisi "date" et indiqué le format :
*14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai aussi
indiqué un format sans astérix.

Je travaille sur excel 2002

Merci pour votre aide.
--
izmi

5 réponses

Avatar
Jacky
Bonjour,

- Au niveau des formats cellules, j'ai choisi "date"


G2 est le résultat d'une soustraction de 2 dates Îllule au Format Standard

Ceci fonctionne sur xl2003, mais il ne devrait pas y avoir de problème avec
xl2002
'-----------
Private Sub CommandButton1_Click()
Me.TextBox3.Value = CDate(Me.TextBox2.Value) - CDate(Me.TextBox1.Value)
[e2] = Me.TextBox1.Value
[f2] = Me.TextBox2.Value
[g2] = Me.TextBox3.Value
' Unload UserForm1
End Sub

'-------------
Voir exemple simple ici
http://www.cijoint.fr/cjlink.php?file=cj200906/cijhS7N4Ey.xls
--
Salutations
JJ


"izmi" a écrit dans le message de news:

Bonjour tout le monde ;

Sur un userform j'ai 3 textbox :
- textbox1 = date du début ;
- textbox2= date de la fin
- textbox3= durée ; (cad : textbox2-textbox1)
En cliquant sur un commandbox, le résultat de ces 3 textbox devrait être
reporté sur les cellues E2;F2 et G2.

Le problème c'est que, alors même que les textbox indiquent bien des dates
au format français, les cellules E2 et F2, adoptent le format anglosaxon !
La durée calculée figure bien dan le textbox3 mais ne se transcrit pas à
la
cellule G2 !

J'ai presque tout essayé :

- Dans le code j'ai assigné le format français de plusieurs façons : cdate
;
"dd/mm/yyy"
- Au niveau des formats cellules, j'ai choisi "date" et indiqué le format
:
*14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai
aussi
indiqué un format sans astérix.

Je travaille sur excel 2002

Merci pour votre aide.
--
izmi


Avatar
izmi
Re-bonjour ;
Merci Jacky ;

J'ai essayé le code que tu m'as proposé. Rien n'y fait. J'ai aussi essayé le
code suivant que j'ai trouvé sur internet :

For Each cellule In Range("E2:E")
cellule.NumberFormat = "dd/mm/yyyy;@"
Next cellule

Dim c As Range
For Each c In Range("F2:F")
c.NumberFormat = "dd/mm/yyyy;@"
Next c

Un moment j'ai cru être au bout de mes peines. Tout semblait fonctionner
correctement. C'était vendre la peau de l'ours avant de l'avoir abattu. Dès
que j'ai changé de feuille sur le même classeur (Feuilles à structures
identiques), le code ne fonctionnait plus.

La vérité, c'est qu'il marchait pour certaines feuilles et pas pour d'autres.

Je pensais pourtant qu'un code d'une même procèdure
(userform+textbox+commandbutton) marche pour toutes les feuilles de même
structures et d'un même classeur. Ce qui est d'ailleurs vrai pour tout le
reste, sauf lorsqu'il s'agit du format date.

A un moment donné, je me suis demandé, si le diable ne s'est pas mélé de ce
code. (N.B : Je ne dis pas un virus !).

Je ne désespère pas : Avec votre aide je finirai bien par avoir sa peau.
Pour cela il faut d'abord que je comprenne pourquoi, ça marche pour certaines
feuilles et pas pour d'autres. Si c'était des procédures événementtielles,
j'aurais compris, mais ce n'est pas le cas.

Merci encore une fois.
--
izmi


"izmi" wrote:

Bonjour tout le monde ;

Sur un userform j'ai 3 textbox :
- textbox1 = date du début ;
- textbox2= date de la fin
- textbox3= durée ; (cad : textbox2-textbox1)
En cliquant sur un commandbox, le résultat de ces 3 textbox devrait être
reporté sur les cellues E2;F2 et G2.

Le problème c'est que, alors même que les textbox indiquent bien des dates
au format français, les cellules E2 et F2, adoptent le format anglosaxon !
La durée calculée figure bien dan le textbox3 mais ne se transcrit pas à la
cellule G2 !

J'ai presque tout essayé :

- Dans le code j'ai assigné le format français de plusieurs façons : cdate ;
"dd/mm/yyy"
- Au niveau des formats cellules, j'ai choisi "date" et indiqué le format :
*14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai aussi
indiqué un format sans astérix.

Je travaille sur excel 2002

Merci pour votre aide.
--
izmi


Avatar
izmi
Re-bonjour ;

J'ai pu identifier le problème : Le code ne discriminait pas entre les
feuilles, mais il rusait : Une date qui a plus de douze jours est
correctement transcrite : 13/06/09 est écrite 13/06/09 ; 30/06/09 la même
chose. Si ces dates étaient écrite à l'anglosaxonne aurait 06/13/09 ou
06/30/09, ce qui aurait été aberrant : L'année ne compte que 12 mois.

Une date de moins de 13 Jours est écrite à l'anglosaxonne : 05/06/09 est
transcrite : 06/05/09.

J'ose espérer que quelqu'un trouvera la solution

Merci.
--
izmi


"izmi" wrote:

Re-bonjour ;
Merci Jacky ;

J'ai essayé le code que tu m'as proposé. Rien n'y fait. J'ai aussi essayé le
code suivant que j'ai trouvé sur internet :

For Each cellule In Range("E2:E")
cellule.NumberFormat = "dd/mm/yyyy;@"
Next cellule

Dim c As Range
For Each c In Range("F2:F")
c.NumberFormat = "dd/mm/yyyy;@"
Next c

Un moment j'ai cru être au bout de mes peines. Tout semblait fonctionner
correctement. C'était vendre la peau de l'ours avant de l'avoir abattu. Dès
que j'ai changé de feuille sur le même classeur (Feuilles à structures
identiques), le code ne fonctionnait plus.

La vérité, c'est qu'il marchait pour certaines feuilles et pas pour d'autres.

Je pensais pourtant qu'un code d'une même procèdure
(userform+textbox+commandbutton) marche pour toutes les feuilles de même
structures et d'un même classeur. Ce qui est d'ailleurs vrai pour tout le
reste, sauf lorsqu'il s'agit du format date.

A un moment donné, je me suis demandé, si le diable ne s'est pas mélé de ce
code. (N.B : Je ne dis pas un virus !).

Je ne désespère pas : Avec votre aide je finirai bien par avoir sa peau.
Pour cela il faut d'abord que je comprenne pourquoi, ça marche pour certaines
feuilles et pas pour d'autres. Si c'était des procédures événementtielles,
j'aurais compris, mais ce n'est pas le cas.

Merci encore une fois.
--
izmi


"izmi" wrote:

> Bonjour tout le monde ;
>
> Sur un userform j'ai 3 textbox :
> - textbox1 = date du début ;
> - textbox2= date de la fin
> - textbox3= durée ; (cad : textbox2-textbox1)
> En cliquant sur un commandbox, le résultat de ces 3 textbox devrait être
> reporté sur les cellues E2;F2 et G2.
>
> Le problème c'est que, alors même que les textbox indiquent bien des dates
> au format français, les cellules E2 et F2, adoptent le format anglosaxon !
> La durée calculée figure bien dan le textbox3 mais ne se transcrit pas à la
> cellule G2 !
>
> J'ai presque tout essayé :
>
> - Dans le code j'ai assigné le format français de plusieurs façons : cdate ;
> "dd/mm/yyy"
> - Au niveau des formats cellules, j'ai choisi "date" et indiqué le format :
> *14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai aussi
> indiqué un format sans astérix.
>
> Je travaille sur excel 2002
>
> Merci pour votre aide.
> --
> izmi


Avatar
Jacky
Re..
Que donne le fichier exemple joint ?

Peut-tu mettre un brouillon de ton fichier sur
http://www.cijoint.fr/

--
Salutations
JJ


"izmi" a écrit dans le message de news:

Re-bonjour ;

J'ai pu identifier le problème : Le code ne discriminait pas entre les
feuilles, mais il rusait : Une date qui a plus de douze jours est
correctement transcrite : 13/06/09 est écrite 13/06/09 ; 30/06/09 la même
chose. Si ces dates étaient écrite à l'anglosaxonne aurait 06/13/09 ou
06/30/09, ce qui aurait été aberrant : L'année ne compte que 12 mois.

Une date de moins de 13 Jours est écrite à l'anglosaxonne : 05/06/09 est
transcrite : 06/05/09.

J'ose espérer que quelqu'un trouvera la solution

Merci.
--
izmi


"izmi" wrote:

Re-bonjour ;
Merci Jacky ;

J'ai essayé le code que tu m'as proposé. Rien n'y fait. J'ai aussi essayé
le
code suivant que j'ai trouvé sur internet :

For Each cellule In Range("E2:E")
cellule.NumberFormat = "dd/mm/yyyy;@"
Next cellule

Dim c As Range
For Each c In Range("F2:F")
c.NumberFormat = "dd/mm/yyyy;@"
Next c

Un moment j'ai cru être au bout de mes peines. Tout semblait fonctionner
correctement. C'était vendre la peau de l'ours avant de l'avoir abattu.
Dès
que j'ai changé de feuille sur le même classeur (Feuilles à structures
identiques), le code ne fonctionnait plus.

La vérité, c'est qu'il marchait pour certaines feuilles et pas pour
d'autres.

Je pensais pourtant qu'un code d'une même procèdure
(userform+textbox+commandbutton) marche pour toutes les feuilles de même
structures et d'un même classeur. Ce qui est d'ailleurs vrai pour tout le
reste, sauf lorsqu'il s'agit du format date.

A un moment donné, je me suis demandé, si le diable ne s'est pas mélé de
ce
code. (N.B : Je ne dis pas un virus !).

Je ne désespère pas : Avec votre aide je finirai bien par avoir sa peau.
Pour cela il faut d'abord que je comprenne pourquoi, ça marche pour
certaines
feuilles et pas pour d'autres. Si c'était des procédures
événementtielles,
j'aurais compris, mais ce n'est pas le cas.

Merci encore une fois.
--
izmi


"izmi" wrote:

> Bonjour tout le monde ;
>
> Sur un userform j'ai 3 textbox :
> - textbox1 = date du début ;
> - textbox2= date de la fin
> - textbox3= durée ; (cad : textbox2-textbox1)
> En cliquant sur un commandbox, le résultat de ces 3 textbox devrait
> être
> reporté sur les cellues E2;F2 et G2.
>
> Le problème c'est que, alors même que les textbox indiquent bien des
> dates
> au format français, les cellules E2 et F2, adoptent le format
> anglosaxon !
> La durée calculée figure bien dan le textbox3 mais ne se transcrit pas
> à la
> cellule G2 !
>
> J'ai presque tout essayé :
>
> - Dans le code j'ai assigné le format français de plusieurs façons :
> cdate ;
> "dd/mm/yyy"
> - Au niveau des formats cellules, j'ai choisi "date" et indiqué le
> format :
> *14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai
> aussi
> indiqué un format sans astérix.
>
> Je travaille sur excel 2002
>
> Merci pour votre aide.
> --
> izmi




Avatar
Jacky
Oupss...
J'oubliais que Vba cause en anglais
ceci:
[e2] = Format(TextBox1.Value, "mm/dd/YY")
[f2] = Format(TextBox2.Value, "mm/dd/YY")

--
Salutations
JJ


"Jacky" a écrit dans le message de news:
%
Re..
Que donne le fichier exemple joint ?

Peut-tu mettre un brouillon de ton fichier sur
http://www.cijoint.fr/

--
Salutations
JJ


"izmi" a écrit dans le message de news:

Re-bonjour ;

J'ai pu identifier le problème : Le code ne discriminait pas entre les
feuilles, mais il rusait : Une date qui a plus de douze jours est
correctement transcrite : 13/06/09 est écrite 13/06/09 ; 30/06/09 la même
chose. Si ces dates étaient écrite à l'anglosaxonne aurait 06/13/09 ou
06/30/09, ce qui aurait été aberrant : L'année ne compte que 12 mois.

Une date de moins de 13 Jours est écrite à l'anglosaxonne : 05/06/09 est
transcrite : 06/05/09.

J'ose espérer que quelqu'un trouvera la solution

Merci.
--
izmi


"izmi" wrote:

Re-bonjour ;
Merci Jacky ;

J'ai essayé le code que tu m'as proposé. Rien n'y fait. J'ai aussi
essayé le
code suivant que j'ai trouvé sur internet :

For Each cellule In Range("E2:E")
cellule.NumberFormat = "dd/mm/yyyy;@"
Next cellule

Dim c As Range
For Each c In Range("F2:F")
c.NumberFormat = "dd/mm/yyyy;@"
Next c

Un moment j'ai cru être au bout de mes peines. Tout semblait fonctionner
correctement. C'était vendre la peau de l'ours avant de l'avoir abattu.
Dès
que j'ai changé de feuille sur le même classeur (Feuilles à structures
identiques), le code ne fonctionnait plus.

La vérité, c'est qu'il marchait pour certaines feuilles et pas pour
d'autres.

Je pensais pourtant qu'un code d'une même procèdure
(userform+textbox+commandbutton) marche pour toutes les feuilles de même
structures et d'un même classeur. Ce qui est d'ailleurs vrai pour tout
le
reste, sauf lorsqu'il s'agit du format date.

A un moment donné, je me suis demandé, si le diable ne s'est pas mélé de
ce
code. (N.B : Je ne dis pas un virus !).

Je ne désespère pas : Avec votre aide je finirai bien par avoir sa peau.
Pour cela il faut d'abord que je comprenne pourquoi, ça marche pour
certaines
feuilles et pas pour d'autres. Si c'était des procédures
événementtielles,
j'aurais compris, mais ce n'est pas le cas.

Merci encore une fois.
--
izmi


"izmi" wrote:

> Bonjour tout le monde ;
>
> Sur un userform j'ai 3 textbox :
> - textbox1 = date du début ;
> - textbox2= date de la fin
> - textbox3= durée ; (cad : textbox2-textbox1)
> En cliquant sur un commandbox, le résultat de ces 3 textbox devrait
> être
> reporté sur les cellues E2;F2 et G2.
>
> Le problème c'est que, alors même que les textbox indiquent bien des
> dates
> au format français, les cellules E2 et F2, adoptent le format
> anglosaxon !
> La durée calculée figure bien dan le textbox3 mais ne se transcrit pas
> à la
> cellule G2 !
>
> J'ai presque tout essayé :
>
> - Dans le code j'ai assigné le format français de plusieurs façons :
> cdate ;
> "dd/mm/yyy"
> - Au niveau des formats cellules, j'ai choisi "date" et indiqué le
> format :
> *14/03/2001, j'ai aussi mis le format personnalisé : 14/03/2001, j'ai
> aussi
> indiqué un format sans astérix.
>
> Je travaille sur excel 2002
>
> Merci pour votre aide.
> --
> izmi