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 !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 !
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" <groussel@free.fr> a écrit dans le message de news:40c8e543$0$21559$626a14ce@news.free.fr...
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 !
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 !
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 !
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" <michdenis@hotmail.com> a écrit dans le message de
news:eaHC76zTEHA.2972@TK2MSFTNGP12.phx.gbl...
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" <groussel@free.fr> a écrit dans le message de
news:40c8e543$0$21559$626a14ce@news.free.fr...
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 !
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 !
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...
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 !
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...
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...
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" <nomail@nomail.net> a écrit dans le message de
news:u0JIMD0TEHA.3664@TK2MSFTNGP12.phx.gbl...
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 !
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...
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...
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" <nomail@nomail.net> a écrit dans le message de
news:u0JIMD0TEHA.3664@TK2MSFTNGP12.phx.gbl...
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 !
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 !