format récalcitrant

Le
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
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
Jacky
Le #19648891
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"
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


izmi
Le #19650271
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


izmi
Le #19650541
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


Jacky
Le #19651681
Re..
Que donne le fichier exemple joint ?

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

--
Salutations
JJ


"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




Jacky
Le #19651831
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" %
Re..
Que donne le fichier exemple joint ?

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

--
Salutations
JJ


"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








Publicité
Poster une réponse
Anonyme