Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus, elle le
transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus, elle le
transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus, elle le
transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les
dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus,
elle le transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
La notion de date en vba est très large, elle inclut également la notion
d'heure.
IsDate(8:15) retourne : vrai.
D'ailleurs Time est une date.
Pourquoi format renvoie cette date ?
Dans Excel on sait que les dates sont définies à partir du 1er janvier
1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Dans votre cas vous pourriez vérifier la longueur du mot ou la présence de
/.
D'ailleurs si vous avez une date (ou pire un nombre qui n'a rien à voir
avec une date) du genre 12/2006, le résultat ne correspond sans doute pas
à votre attente.
Puisque vous passez en présentation américaine, essayez avec les
dimensions comme 1/4 (de pouce).
--
A+
Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les
dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus,
elle le transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
La notion de date en vba est très large, elle inclut également la notion
d'heure.
IsDate(8:15) retourne : vrai.
D'ailleurs Time est une date.
Pourquoi format renvoie cette date ?
Dans Excel on sait que les dates sont définies à partir du 1er janvier
1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Dans votre cas vous pourriez vérifier la longueur du mot ou la présence de
/.
D'ailleurs si vous avez une date (ou pire un nombre qui n'a rien à voir
avec une date) du genre 12/2006, le résultat ne correspond sans doute pas
à votre attente.
Puisque vous passez en présentation américaine, essayez avec les
dimensions comme 1/4 (de pouce).
--
A+
Bonjour,
J'ai une macro qui boucle dans un document pour convertir toutes les
dates en dates US:
If IsDate(str_mot) Then str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
Si la macro voit des chiffres, elle ne fait donc rien en principe.
Mais si dans le document, j'ai un chiffre compris entre 0 et 23 inclus,
elle le transforme en date: 12/30/1899...
Quelqu'un a-t-il une idée?
Oui.
La notion de date en vba est très large, elle inclut également la notion
d'heure.
IsDate(8:15) retourne : vrai.
D'ailleurs Time est une date.
Pourquoi format renvoie cette date ?
Dans Excel on sait que les dates sont définies à partir du 1er janvier
1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Dans votre cas vous pourriez vérifier la longueur du mot ou la présence de
/.
D'ailleurs si vous avez une date (ou pire un nombre qui n'a rien à voir
avec une date) du genre 12/2006, le résultat ne correspond sans doute pas
à votre attente.
Puisque vous passez en présentation américaine, essayez avec les
dimensions comme 1/4 (de pouce).
--
A+
Dans Excel on sait que les dates sont définies à partir du 1er janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Dans Excel on sait que les dates sont définies à partir du 1er janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Dans Excel on sait que les dates sont définies à partir du 1er janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Bonjour Geo et Fred,
Geo avait écrit le 02/11/2006 :Dans Excel on sait que les dates sont définies à partir du 1er
janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Il me semble que Word est beaucoup plus large, puis les dates sont
reconnues à partir du 1er janvier de l'an 100 !!!!!
Il faut dire que Word peut servir à faire des traités d'histoire...
Excel est beaucoup plus limité avec ses petites cases !!! :D)))
Circé
Bonjour Geo et Fred,
Geo avait écrit le 02/11/2006 :
Dans Excel on sait que les dates sont définies à partir du 1er
janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Il me semble que Word est beaucoup plus large, puis les dates sont
reconnues à partir du 1er janvier de l'an 100 !!!!!
Il faut dire que Word peut servir à faire des traités d'histoire...
Excel est beaucoup plus limité avec ses petites cases !!! :D)))
Circé
Bonjour Geo et Fred,
Geo avait écrit le 02/11/2006 :Dans Excel on sait que les dates sont définies à partir du 1er
janvier 1900.
le 30/12/1899 n'en est pas loin, il y a sans doute un rapport.
Il me semble que Word est beaucoup plus large, puis les dates sont
reconnues à partir du 1er janvier de l'an 100 !!!!!
Il faut dire que Word peut servir à faire des traités d'histoire...
Excel est beaucoup plus limité avec ses petites cases !!! :D)))
Circé
Ce qui m'étonne, c'est que je ne vois pas de différence entre 23 et 24...
Ce qui m'étonne, c'est que je ne vois pas de différence entre 23 et 24...
Ce qui m'étonne, c'est que je ne vois pas de différence entre 23 et 24...
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word ?
Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est l'an zéro car
inexistant !
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word ?
Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est l'an zéro car
inexistant !
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word ?
Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est l'an zéro car
inexistant !
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
C'est l'aide qui le dit.
êtes-vous certains d'être en format date.
Essayez de changer le format pour lui faire afficher 31/12/1899
D'ailleurs si vous agrandissez votre colonne votre texte reste à gauche.
J'ai demandé à Excel de calculer la veille du 1/1/1900 et il m'a donné le
0/1/1900 :-)Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word
?
Si, bien sûr, mais pas possible de faire des calculs sur les dates.Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est
l'an zéro car inexistant !
Tout à fait, voici d'ailleurs la définition pour visual basic (extrait de
MSDN):
--------
Type de données date (Visual Basic)
Contient des valeurs sous la forme IEEE 64 bits (8 octets) qui
représentent des dates comprises entre le 1er janvier de l'année 1 et le
31 décembre 9999 et des heures comprises entre 0:00:00 (minuit) et
23:59:59.9999999. Chaque incrément représente 100 nanosecondes du temps
écoulé depuis le 1er janvier de l'an 1 du calendrier grégorien. La valeur
maximale représente 100 nanosecondes avant le début du 1er janvier de
l'année 10 000.
-------
--
A+
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
C'est l'aide qui le dit.
êtes-vous certains d'être en format date.
Essayez de changer le format pour lui faire afficher 31/12/1899
D'ailleurs si vous agrandissez votre colonne votre texte reste à gauche.
J'ai demandé à Excel de calculer la veille du 1/1/1900 et il m'a donné le
0/1/1900 :-)
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.
Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word
?
Si, bien sûr, mais pas possible de faire des calculs sur les dates.
Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est
l'an zéro car inexistant !
Tout à fait, voici d'ailleurs la définition pour visual basic (extrait de
MSDN):
--------
Type de données date (Visual Basic)
Contient des valeurs sous la forme IEEE 64 bits (8 octets) qui
représentent des dates comprises entre le 1er janvier de l'année 1 et le
31 décembre 9999 et des heures comprises entre 0:00:00 (minuit) et
23:59:59.9999999. Chaque incrément représente 100 nanosecondes du temps
écoulé depuis le 1er janvier de l'an 1 du calendrier grégorien. La valeur
maximale représente 100 nanosecondes avant le début du 1er janvier de
l'année 10 000.
-------
--
A+
Surpris par cette affirmation, aucun problème pour afficher
31 décembre 1899 dans Excel 2000 !
C'est l'aide qui le dit.
êtes-vous certains d'être en format date.
Essayez de changer le format pour lui faire afficher 31/12/1899
D'ailleurs si vous agrandissez votre colonne votre texte reste à gauche.
J'ai demandé à Excel de calculer la veille du 1/1/1900 et il m'a donné le
0/1/1900 :-)Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.Je ne vois pas pourquoi je ne pourrais pas écrire "en l'an 25" sous Word
?
Si, bien sûr, mais pas possible de faire des calculs sur les dates.Le seul que je n'ai pas le droit d'écrire (mais je le pourrais) c'est
l'an zéro car inexistant !
Tout à fait, voici d'ailleurs la définition pour visual basic (extrait de
MSDN):
--------
Type de données date (Visual Basic)
Contient des valeurs sous la forme IEEE 64 bits (8 octets) qui
représentent des dates comprises entre le 1er janvier de l'année 1 et le
31 décembre 9999 et des heures comprises entre 0:00:00 (minuit) et
23:59:59.9999999. Chaque incrément représente 100 nanosecondes du temps
écoulé depuis le 1er janvier de l'an 1 du calendrier grégorien. La valeur
maximale représente 100 nanosecondes avant le début du 1er janvier de
l'année 10 000.
-------
--
A+
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle posant problème, de
faire un test du genre "si inférieur à 24, ne fais rien"?
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle posant problème, de
faire un test du genre "si inférieur à 24, ne fais rien"?
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle posant problème, de
faire un test du genre "si inférieur à 24, ne fais rien"?
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle
posant problème, de faire un test du genre "si inférieur à 24, ne fais
rien"?
Ce n'est pas mon programme, mais je conseillerais plutôt de tester la
longueur du mot pour éviter de convertir trop de données non concernées.
Du genre :
if len(str_mot)> 6 then ' à ajuster
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
ou :
if instr(str_mot,"/") > 0 then ' vérifie qu'il y a un "/" dans le mot
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
En fait tout dépend de vos habitudes ou de vos règles.
Comme vous le faisiez remarquer, on peut écrire une date sous la forme 31
décembre 1899, là ça fait 3 mots éventuellement convertis.
Je viens d'essayer avec Word 2003, voici quelques résultats :
? isdate(21)
Faux
? isdate(31/12/2006)
Faux
? isdate("31/12/2006")
Vrai
? isdate("21")
Faux
? isdate("31 décembre 2006")
Vrai
? isdate("décembre 2006")
Vrai
? isdate(décembre)
Faux
? isdate("décembre")
Faux
? isdate("9:35")
Vrai
? isdate("9")
Faux
? isdate("3/8")
Vrai
Ce serait intéressant de voir si 2000, fait la même chose, mais 21 tout
seul n'est pas considéré comme date.
--
A+
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle
posant problème, de faire un test du genre "si inférieur à 24, ne fais
rien"?
Ce n'est pas mon programme, mais je conseillerais plutôt de tester la
longueur du mot pour éviter de convertir trop de données non concernées.
Du genre :
if len(str_mot)> 6 then ' à ajuster
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
ou :
if instr(str_mot,"/") > 0 then ' vérifie qu'il y a un "/" dans le mot
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
En fait tout dépend de vos habitudes ou de vos règles.
Comme vous le faisiez remarquer, on peut écrire une date sous la forme 31
décembre 1899, là ça fait 3 mots éventuellement convertis.
Je viens d'essayer avec Word 2003, voici quelques résultats :
? isdate(21)
Faux
? isdate(31/12/2006)
Faux
? isdate("31/12/2006")
Vrai
? isdate("21")
Faux
? isdate("31 décembre 2006")
Vrai
? isdate("décembre 2006")
Vrai
? isdate(décembre)
Faux
? isdate("décembre")
Faux
? isdate("9:35")
Vrai
? isdate("9")
Faux
? isdate("3/8")
Vrai
Ce serait intéressant de voir si 2000, fait la même chose, mais 21 tout
seul n'est pas considéré comme date.
--
A+
Bonjour,
Merci pour vos réponses.
Auriez-vous une petite ligne qui me permettrait, au dessus de celle
posant problème, de faire un test du genre "si inférieur à 24, ne fais
rien"?
Ce n'est pas mon programme, mais je conseillerais plutôt de tester la
longueur du mot pour éviter de convertir trop de données non concernées.
Du genre :
if len(str_mot)> 6 then ' à ajuster
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
ou :
if instr(str_mot,"/") > 0 then ' vérifie qu'il y a un "/" dans le mot
If IsDate(str_mot) Then
str_mot = Format(CDate(str_mot), "mm/dd/yyyy").
endif
endif
En fait tout dépend de vos habitudes ou de vos règles.
Comme vous le faisiez remarquer, on peut écrire une date sous la forme 31
décembre 1899, là ça fait 3 mots éventuellement convertis.
Je viens d'essayer avec Word 2003, voici quelques résultats :
? isdate(21)
Faux
? isdate(31/12/2006)
Faux
? isdate("31/12/2006")
Vrai
? isdate("21")
Faux
? isdate("31 décembre 2006")
Vrai
? isdate("décembre 2006")
Vrai
? isdate(décembre)
Faux
? isdate("décembre")
Faux
? isdate("9:35")
Vrai
? isdate("9")
Faux
? isdate("3/8")
Vrai
Ce serait intéressant de voir si 2000, fait la même chose, mais 21 tout
seul n'est pas considéré comme date.
--
A+
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.
Je me souvenais avoir vu cette info quelque part, et je n'arrivais pas
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.
Je me souvenais avoir vu cette info quelque part, et je n'arrivais pas
Euh une question d'historien amateur, pourquoi à partir de l'an 100 !
Je n'ai pas trouvé cette information, mais c'est une conceté de concepteur
tout comme pour 1900.
Je me souvenais avoir vu cette info quelque part, et je n'arrivais pas