OVH Cloud OVH Cloud

Bug sur Format(Date, "mmm yy")

5 réponses
Avatar
Gérald ROUSSEL
Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que l'on lance
le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail demandé
pour les mois de septembre, octobre et novembre !

Merci pour vos idées...
--


Gérald ROUSSEL
----------------------------------
http://groussel.free.fr
----------------------------------

5 réponses

Avatar
michdenis
Bonjour Gérald,

Qu'est-ce qu'il y a dans les cellules qui seraient supposées afficher des dates du mois de septembre , octobre et
Novembre ?

Est-ce que ces cellules ont des "données -date" reconnu par excel ?

Si tu peux donner une ou deux exemples de cellules qui ne répondent pas à ta procédure
Leur contenu :
Leur format avant de lancer ta procédure.


Salutations!



"Gérald ROUSSEL" a écrit dans le message de news:40c8e543$0$21559$
Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que l'on lance
le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail demandé
pour les mois de septembre, octobre et novembre !

Merci pour vos idées...
--


Gérald ROUSSEL
----------------------------------
http://groussel.free.fr
----------------------------------
Avatar
Gérald ROUSSEL
j'ai ça :
01/01/1900 déc 99
01/02/1900 janv 00
01/03/1900 mars 00
01/04/1900 avr 00
01/05/1900 mai 00
01/06/1900 juin 00
01/07/1900 juil 00
01/08/1900 août 00
01/09/1900 sept-00
01/10/1900 oct-00
01/11/1900 nov-00
01/12/1900 déc 00


Bizarre, non ?
--
Gérald ROUSSEL
----------------------------------
http://groussel.free.fr
----------------------------------
"michdenis" a écrit dans le message de
news:
Bonjour Gérald,

Qu'est-ce qu'il y a dans les cellules qui seraient supposées afficher des
dates du mois de septembre , octobre et

Novembre ?

Est-ce que ces cellules ont des "données -date" reconnu par excel ?

Si tu peux donner une ou deux exemples de cellules qui ne répondent pas à
ta procédure

Leur contenu :
Leur format avant de lancer ta procédure.


Salutations!



"Gérald ROUSSEL" a écrit dans le message de
news:40c8e543$0$21559$

Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que l'on
lance

le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail demandé
pour les mois de septembre, octobre et novembre !

Merci pour vos idées...
--


Gérald ROUSSEL
----------------------------------
http://groussel.free.fr
----------------------------------





Avatar
GD
Bonsour(®),
Non...non... ce n'est pas un bug mais une utilisation erronée ;-)))
le code écrit en colonne B un texte et non une valeur
Excel s'empresse alors d'évaluer le contenu de la cellule et utilise alors
le format de cellule le plus approprié....

le code ci-dessous détaille ce qu'il faudrait faire :
Sub DateCourte()
For Each cel In [A1:A20]
'--------1ere solution c'est une date
cel.Offset(0, 1).NumberFormat = "mmm yy"
cel.Offset(0, 1) = cel
'--------2eme solution c'est un texte
cel.Offset(0, 2).NumberFormat = "@"
cel.Offset(0, 2) = Format(cel, "mmm yy")

Next
End Sub
@+

Gérald ROUSSEL wrote:
Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que l'on
lance le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail
demandé pour les mois de septembre, octobre et novembre !

Merci pour vos idées...


Avatar
Gérald ROUSSEL
je comprends ce que tu veux dire mais je ne comprends pas pourquoi il
interpréte TOUJOURS les dates dont le mois est sept, oct et nov comme du
texte...
tu dis : > le format de cellule le plus approprié....
mais pourquoi celui là ?

Pour info,je pars d'un fichier vierge, of course.

"GD" a écrit dans le message de
news:
Bonsour(®),
Non...non... ce n'est pas un bug mais une utilisation erronée ;-)))
le code écrit en colonne B un texte et non une valeur
Excel s'empresse alors d'évaluer le contenu de la cellule et utilise alors
le format de cellule le plus approprié....

le code ci-dessous détaille ce qu'il faudrait faire :
Sub DateCourte()
For Each cel In [A1:A20]
'--------1ere solution c'est une date
cel.Offset(0, 1).NumberFormat = "mmm yy"
cel.Offset(0, 1) = cel
'--------2eme solution c'est un texte
cel.Offset(0, 2).NumberFormat = "@"
cel.Offset(0, 2) = Format(cel, "mmm yy")

Next
End Sub
@+

Gérald ROUSSEL wrote:
Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que l'on
lance le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail
demandé pour les mois de septembre, octobre et novembre !

Merci pour vos idées...






Avatar
GD
Bonsour(®)
;-)))
en effet la logique utilisée par excel dans l'interprétation des dates n'est
toujours trés compréhensible....
concernant les cellules qui te paraissent erronées, en fait si tu passe le
curseur sur ces cellules
la valeur apparaissant dans la barre de formule sont effectivement de type
date alors que pour les autres c'est un texte !!!
plus surprenant dans ces cas précis et quelle que soit l'année de la date
d'origine colonne A,
l'année visualisée dans la barre de formule est l'année courante !!!

c'est pourquoi il faut faire preuve de rigueur dans l'écriture du code VBA
traitant les dates.
aprés quelques années d'utilisation, je n'ai pas réellement d'explications ,
mais cette rigueur me permet de contourner tout ces soucis.
voir plus d'informations sur le site http://longre.free.fr
et aussi chez Frederic.sigonneau
@+

datesGérald ROUSSEL wrote:
je comprends ce que tu veux dire mais je ne comprends pas pourquoi il
interpréte TOUJOURS les dates dont le mois est sept, oct et nov comme
du texte...
tu dis : > le format de cellule le plus approprié....
mais pourquoi celui là ?

Pour info,je pars d'un fichier vierge, of course.

"GD" a écrit dans le message de
news:
Bonsour(®),
Non...non... ce n'est pas un bug mais une utilisation erronée ;-)))
le code écrit en colonne B un texte et non une valeur
Excel s'empresse alors d'évaluer le contenu de la cellule et utilise
alors le format de cellule le plus approprié....

le code ci-dessous détaille ce qu'il faudrait faire :
Sub DateCourte()
For Each cel In [A1:A20]
'--------1ere solution c'est une date
cel.Offset(0, 1).NumberFormat = "mmm yy"
cel.Offset(0, 1) = cel
'--------2eme solution c'est un texte
cel.Offset(0, 2).NumberFormat = "@"
cel.Offset(0, 2) = Format(cel, "mmm yy")

Next
End Sub
@+

Gérald ROUSSEL wrote:
Bonsoir à vous tous,

J'ai découvert un bug (ou une erreur de syntaxe ;-)) dans Excel :
Si dans la colonne A, on a des dates au format jj/mm/aaaa et que
l'on lance le bout de code suivant :
Sub DateCourte()
For Each cel In [A1:A20]
cel.Offset(0, 1) = Format(cel, "mmm yy")
Next
End Sub

J'ai la surprise de voir qu'Excel n'arrive pas à faire le travail
demandé pour les mois de septembre, octobre et novembre !

Merci pour vos idées...