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

modif date system à partir d'une macro !

6 réponses
Avatar
j-pascal
Bonjour à tous,

J'étais en train d'écrire une macro (excel) avec la fonction "Time" ... +
une fonction "aujourdhui()" dans la cellule d'un onglet, quand ma *date*
*system* s'est modifiée ! Je m'en suis rendu compte en voyant que
l'affichage de la cellule où aurait dû s'inscrire la date de ce jour était
incohérent ... etc.

Effet :

L'icône du centre de sécurité est passé au rouge, m'indiquant que mon
antivirus n'était plus à jour !! Normal (!) mon PC était en 2999 (je crois).

Action :

J'ai réglé l'horloge (dans la barre de notification) + [...] et tout est
rentré dans l'ordre.

Question :

J'utilise souvent la fonction "=aujourdhui()", un peu moins souvent la
fonction "time", et c'est la première fois que je rencontre ce pb. Avez-vous
une idée de ce qui s'est passé ?
Merci d'avance pour vos avis éclairés...

JP

6 réponses

Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

J'étais en train d'écrire une macro (excel) avec la fonction "Time" ... +
une fonction "aujourdhui()" dans la cellule d'un onglet, quand ma *date*
*system* s'est modifiée ! J'utilise souvent la fonction "=aujourdhui()",
un peu moins souvent la
fonction "time", et c'est la première fois que je rencontre ce pb.
Avez-vous
une idée de ce qui s'est passé ?


Time et Date peuvent s'utiliser de 2 façons :
1- en tant que fonction
affichage de l'heure systeme ex:
msgbox Time

2 en tant qu' Instruction définition de l'heure systeme
ex : Mavariable= #12:34:56#
Time=Mavariable
l'heure systeme à été initialisée à 12:34:56

voir à ce sujet l'aide VBA :
Time, instruction, exemple
Cet exemple utilise l'instruction Time pour définir l'heure système de
l'ordinateur en fonction d'une heure définie par l'utilisateur.

Dim MyTime
MyTime = #4:35:17 PM# ' Attribue une heure.
Time = MyTime ' Définit l'heure système à l'aide de MyTime.
Date, instruction, exempleCet exemple utilise l'instruction Date pour
définir la date système de l'ordinateur. Dans l'environnement de
développement, le littéral date est affiché à l'aide du format abrégé en
fonction des paramètres régionaux de votre code.Dim MyDate
MyDate = #12 february 1985# ' Attribue une date.
Date = MyDate ' Change la date système.


--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
j-pascal
Bonjour Modeste,

Merci pour ta réponse.

En fait, je me souviens d'avoir écrit dans la macro :

date = Time et msgbox date (il me semble), mais je n'ai jamais
forcé une date avec l'exemple que tu donnes comme :
Mavariable= #12:34:56#
Time=Mavariable


D'ailleurs c'est la date du 30/12/2099 qui s'est inscrite pour le system (je
l'ai retrouvée dans l'observateur d'événements...). Je n'avais aucun intérêt
à entrer une telle date futuriste !

En plus de la macro, j'ai voulu créer un "=aujoudhui()" dans une cellule
pour contourner la macro "time" qui ne fonctionnait pas. Dans la macro,
j'aurais importé la valeur de ladite cellule. Je sais, ce n'est pas très
académique, mais c'était tout ce que j'avais trouvé pour contourner le pb.

En fait, mon but est le suivant :

J'ai une feuille qui comporte un tableau.
On lançant une macro, je veux que cette feuille se duplique et que la date
du jour s'incrive dans le nouvel onglet (je fais déjà ça avec une autre
macro, mais je me souviens que la date s'inscrivait à l'américaine !!! C'est
pour cette raison que j'avais préféré passer par une cellule que je
bidouillais (un peu...) comme suit :

Dans la feuille :

F2 = "aujourdhui()"
F3 = TEXTE(F2;"mm-jj-aa")
F4 = DROITE(GAUCHE(F3;5);2)&"-"&GAUCHE(GAUCHE(F3;5);2)&"-"&DROITE(F3;2)

En résumé :

F2 affiche : 01/05/2006
F3 affiche : 05-01-06 (car les "/" ne peuvent s'inscrire dans un onglet !)
F4 affiche : 01-05-06 (format qui n'est plus à l'américaine !)

Dans la macro :

Sheets("liste définitive").Name = Range("F4")

Par la suite, je ferai en sorte que les feuilles antérieures à la date du
jour se masquent (en conservant leurs dates respectives bien sûr !).

A vrai dire, cette expérience malheureuse m'a un peu refroidi (car ça m'a
mis mon antivirus hs, etc, etc...). Je ne sais pas où j'ai fait la bourde !

Merci pour ton aide,

Bien à toi,

JP

PS : Faut-il (et comment), mettre à jour sa version d'excel ? J'avais
essayer d'utiliser "BaseLine Security Analyser" mais ça ne marche pas ;-(





wrote:
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

J'étais en train d'écrire une macro (excel) avec la fonction "Time"
... + une fonction "aujourdhui()" dans la cellule d'un onglet, quand
ma *date* *system* s'est modifiée ! J'utilise souvent la fonction
"=aujourdhui()", un peu moins souvent la
fonction "time", et c'est la première fois que je rencontre ce pb.
Avez-vous
une idée de ce qui s'est passé ?


Time et Date peuvent s'utiliser de 2 façons :
1- en tant que fonction
affichage de l'heure systeme ex:
msgbox Time

2 en tant qu' Instruction définition de l'heure systeme
ex : Mavariable= #12:34:56#
Time=Mavariable
l'heure systeme à été initialisée à 12:34:56

voir à ce sujet l'aide VBA :
Time, instruction, exemple
Cet exemple utilise l'instruction Time pour définir l'heure système de
l'ordinateur en fonction d'une heure définie par l'utilisateur.

Dim MyTime
MyTime = #4:35:17 PM# ' Attribue une heure.
Time = MyTime ' Définit l'heure système à l'aide de MyTime.
Date, instruction, exempleCet exemple utilise l'instruction Date pour
définir la date système de l'ordinateur. Dans l'environnement de
développement, le littéral date est affiché à l'aide du format abrégé
en fonction des paramètres régionaux de votre code.Dim MyDate
MyDate = #12 february 1985# ' Attribue une date.
Date = MyDate ' Change la date système.



Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

En fait, je me souviens d'avoir écrit dans la macro :
date = Time et msgbox date


ce qui fait que précisément dans ce cas, la date doit etre devenue : samedi
30 décembre 1899
;o)))

par ailleurs :
il y a une notable difference entre =Maintenant() et =Aujourdhui()
Maintenant() contient la date et l'heure ( codage interne en nombre décimal)
Aujourdhui() ne contient que la date (codage interne entier au sens Excel)

tu parles également de Time, c'est une fonction ou Instruction VBA (format
US)
tout comme Timeserial, Date et Dateserial ou encore Today (aujourd'hui) ou
Now (maintenant)

en formule de feuille de calcul :
on utilisera en langue locale TEMPS et TEMPSVAL ainsi que DATE et DATEVAL



--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr

Avatar
j-pascal
Bonsoir Modeste,

En fait, je me souviens d'avoir écrit dans la macro :
date = Time et msgbox date


ce qui fait que précisément dans ce cas, la date doit etre devenue :
samedi 30 décembre 1899
;o)))


Désolé, mais je ne comprends pas pourquoi ;-(



par ailleurs :
il y a une notable difference entre =Maintenant() et =Aujourdhui()
Maintenant() contient la date et l'heure ( codage interne en nombre
décimal) Aujourdhui() ne contient que la date (codage interne entier
au sens Excel)


J'utilise les 2, à bon escient, j'espère !

tu parles également de Time, c'est une fonction ou Instruction VBA
(format US)
tout comme Timeserial, Date et Dateserial ou encore Today
(aujourd'hui) ou Now (maintenant)

en formule de feuille de calcul :
on utilisera en langue locale TEMPS et TEMPSVAL ainsi que DATE et
DATEVAL


Ce qui signifie que =maintenant() n'est pas l'équivalent de "Time" en macro
? Sinon, quel est l'équivalent de =aujourdhui() en macro ? Je ne suis pas
sûr d'avoir bien compris ...

Merci

JP


Avatar
Modeste
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

En fait, je me souviens d'avoir écrit dans la macro :
date = Time et msgbox date


ce qui fait que précisément dans ce cas, la date doit etre devenue :
samedi 30 décembre 1899


Désolé, mais je ne comprends pas pourquoi ;-(


comme expliqué dans la réponse précédente
Time renvoie l'heure systeme au sens excel : une fraction de jour , c'est à
dire un nombre décimal inférieur à 1
tel que 0,666666 qui correspond à 08:00
la fonction Date attend un entier, or la partie entiere de 0,66666 est dans
ce cas systematiquement 0
et la valeur zero est l'origine (VBA(*) des dates Excel, le 1 correspond au
31/12/1899

(*) attention les fonctions de dates de feuilles de calcul n'utilise pas les
même algorithmes que les fonctions VBA
MsgBox Format(32, "dd mmm yyyy hh:mm:ss")
MsgBox Evaluate("TEXT(32, ""dd mmm yyyy hh:mm:ss"")")


--
;o)))
@+

Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI

n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr



Avatar
j-pascal
Bonsoir Modeste,

C'est un peu compliqué pour moi, mais je vais relire tout ça soigneusement
afin de bien intégrer ces subtilités...
Merci pour ta patience.
JP

wrote:
Bonsour® j-pascal avec ferveur ;o))) vous nous disiez :

En fait, je me souviens d'avoir écrit dans la macro :
date = Time et msgbox date


ce qui fait que précisément dans ce cas, la date doit etre devenue :
samedi 30 décembre 1899


Désolé, mais je ne comprends pas pourquoi ;-(


comme expliqué dans la réponse précédente
Time renvoie l'heure systeme au sens excel : une fraction de jour ,
c'est à dire un nombre décimal inférieur à 1
tel que 0,666666 qui correspond à 08:00
la fonction Date attend un entier, or la partie entiere de 0,66666
est dans ce cas systematiquement 0
et la valeur zero est l'origine (VBA(*) des dates Excel, le 1
correspond au 31/12/1899

(*) attention les fonctions de dates de feuilles de calcul n'utilise
pas les même algorithmes que les fonctions VBA
MsgBox Format(32, "dd mmm yyyy hh:mm:ss")
MsgBox Evaluate("TEXT(32, ""dd mmm yyyy hh:mm:ss"")")