Est-il possible de limiter l'utilisation d'un classeur dans le temps
Par exemple
if cdate(now) >= DateLimite then
On ferme le classeur
J'ai essayé ceci mais cela ne fonctionne pas
Sub Time()
If CDate(Now) >= Range("ExpirationDate").Value Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.",
vbOKOnly
ThisWorkbook.Close savechanges:=False
End If
End Sub
en ExpirationDate j'ai 06/09/2009
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
Hervé
Bonjour Pascal,
avec une écriture dans la base de registre : Pour tester, tu mets ce code dans le module du classeur, tu ferme le classeur puis tu le ré-ouvre, à ce moment là, la clé est créée dans la base de registre avec la date du jour. Tu referme ton classeur, tu vas dans la base de registre (inscrire Regedit dans le champ rechercher du menu demarrer) puis tu ouvre les clés (comme dans l'explorateur de Windows) "HKEY_CURRENT_USERSoftwareVB and VBA Program SettingsMonAppliEcheance" et là, tu double clique sur le nom Date (dans la partie droite de la fenêtre) quand la boîte de message s'ouvre tu change la valeur dans le champ "Donnée de la valeur" à une date antérieure à la date du jour (bien respecter le format) puis tu valide et ferme les clés en sortant de la base de registre. T réouvre ton classeur et tu devrai avoir alors ton message d'alerte.
Private Sub Workbook_Open()
Dim MaDate As Date
'récupère la date déchéance dans la base de registre à l'adresse : 'HKEY_CURRENT_USERSoftwareVB and VBA Program Settings 'adapter les noms de clés MaDate = GetSetting("MonAppli", "Echeance", "Date", Date)
'si elle est = à la date du jour, 1ère ouverture donc création 'des clés et valeur dans la base de registre avec ici une durée 'de 90 jours If MaDate = Date Then
SaveSetting "MonAppli", "Echeance", "Date", Date + 90
End If
'contrôle si la date actuelle est supérieure à celle de la '1ère ouverture, si c'est le cas, affiche un message et ferme 'le classeur. If Date > MaDate Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée" ThisWorkbook.Close False
End If
End Sub
Hervé.
"Pascal" a écrit dans le message de news:%
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
Bonjour Pascal,
avec une écriture dans la base de registre :
Pour tester, tu mets ce code dans le module du classeur, tu ferme le
classeur puis tu le ré-ouvre, à ce moment là, la clé est créée dans la base
de registre avec la date du jour. Tu referme ton classeur, tu vas dans la
base de registre (inscrire Regedit dans le champ rechercher du menu
demarrer) puis tu ouvre les clés (comme dans l'explorateur de Windows)
"HKEY_CURRENT_USERSoftwareVB and VBA Program SettingsMonAppliEcheance"
et là, tu double clique sur le nom Date (dans la partie droite de la
fenêtre) quand la boîte de message s'ouvre tu change la valeur dans le champ
"Donnée de la valeur" à une date antérieure à la date du jour (bien
respecter le format) puis tu valide et ferme les clés en sortant de la base
de registre. T réouvre ton classeur et tu devrai avoir alors ton message
d'alerte.
Private Sub Workbook_Open()
Dim MaDate As Date
'récupère la date déchéance dans la base de registre à l'adresse :
'HKEY_CURRENT_USERSoftwareVB and VBA Program Settings
'adapter les noms de clés
MaDate = GetSetting("MonAppli", "Echeance", "Date", Date)
'si elle est = à la date du jour, 1ère ouverture donc création
'des clés et valeur dans la base de registre avec ici une durée
'de 90 jours
If MaDate = Date Then
SaveSetting "MonAppli", "Echeance", "Date", Date + 90
End If
'contrôle si la date actuelle est supérieure à celle de la
'1ère ouverture, si c'est le cas, affiche un message et ferme
'le classeur.
If Date > MaDate Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée"
ThisWorkbook.Close False
End If
End Sub
Hervé.
"Pascal" <pb@nospam.fr> a écrit dans le message de
news:%23oiDjPsLKHA.4168@TK2MSFTNGP05.phx.gbl...
Bonjour
Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps
Par exemple
if cdate(now) >= DateLimite then
On ferme le classeur
J'ai essayé ceci mais cela ne fonctionne pas
Sub Time()
If CDate(Now) >= Range("ExpirationDate").Value Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.",
vbOKOnly
ThisWorkbook.Close savechanges:úlse
End If
End Sub
en ExpirationDate j'ai 06/09/2009
avec une écriture dans la base de registre : Pour tester, tu mets ce code dans le module du classeur, tu ferme le classeur puis tu le ré-ouvre, à ce moment là, la clé est créée dans la base de registre avec la date du jour. Tu referme ton classeur, tu vas dans la base de registre (inscrire Regedit dans le champ rechercher du menu demarrer) puis tu ouvre les clés (comme dans l'explorateur de Windows) "HKEY_CURRENT_USERSoftwareVB and VBA Program SettingsMonAppliEcheance" et là, tu double clique sur le nom Date (dans la partie droite de la fenêtre) quand la boîte de message s'ouvre tu change la valeur dans le champ "Donnée de la valeur" à une date antérieure à la date du jour (bien respecter le format) puis tu valide et ferme les clés en sortant de la base de registre. T réouvre ton classeur et tu devrai avoir alors ton message d'alerte.
Private Sub Workbook_Open()
Dim MaDate As Date
'récupère la date déchéance dans la base de registre à l'adresse : 'HKEY_CURRENT_USERSoftwareVB and VBA Program Settings 'adapter les noms de clés MaDate = GetSetting("MonAppli", "Echeance", "Date", Date)
'si elle est = à la date du jour, 1ère ouverture donc création 'des clés et valeur dans la base de registre avec ici une durée 'de 90 jours If MaDate = Date Then
SaveSetting "MonAppli", "Echeance", "Date", Date + 90
End If
'contrôle si la date actuelle est supérieure à celle de la '1ère ouverture, si c'est le cas, affiche un message et ferme 'le classeur. If Date > MaDate Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée" ThisWorkbook.Close False
End If
End Sub
Hervé.
"Pascal" a écrit dans le message de news:%
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
FS
Bonjour,
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça marche très bien. Now ou Date suffisent et marchent bien également. Qu'est-ce qui ne fonctionne pas ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
Bonjour,
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça
marche très bien. Now ou Date suffisent et marchent bien également.
Qu'est-ce qui ne fonctionne pas ?
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour
Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps
Par exemple
if cdate(now) >= DateLimite then
On ferme le classeur
J'ai essayé ceci mais cela ne fonctionne pas
Sub Time()
If CDate(Now) >= Range("ExpirationDate").Value Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.",
vbOKOnly
ThisWorkbook.Close savechanges:úlse
End If
End Sub
en ExpirationDate j'ai 06/09/2009
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça marche très bien. Now ou Date suffisent et marchent bien également. Qu'est-ce qui ne fonctionne pas ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
FS
Re,
J'ai oublié de rappeler, même si cela semble évident, que ce genre de limitation suppose que les macros soient activées. Si l'utilisateur les désactive, plus de limitation (mais plus d'exécution du code non plus s'il y a d'autres macros dans le classeur).
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
Re,
J'ai oublié de rappeler, même si cela semble évident, que ce genre de
limitation suppose que les macros soient activées. Si l'utilisateur les
désactive, plus de limitation (mais plus d'exécution du code non plus
s'il y a d'autres macros dans le classeur).
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour
Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps
Par exemple
if cdate(now) >= DateLimite then
On ferme le classeur
J'ai essayé ceci mais cela ne fonctionne pas
Sub Time()
If CDate(Now) >= Range("ExpirationDate").Value Then
MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.",
vbOKOnly
ThisWorkbook.Close savechanges:úlse
End If
End Sub
en ExpirationDate j'ai 06/09/2009
J'ai oublié de rappeler, même si cela semble évident, que ce genre de limitation suppose que les macros soient activées. Si l'utilisateur les désactive, plus de limitation (mais plus d'exécution du code non plus s'il y a d'autres macros dans le classeur).
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
Pascal
Merci Frédéric et merci pour ton site qui est une mine d'informations "FS" a écrit dans le message de news: %23pFt%
Bonjour,
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça marche très bien. Now ou Date suffisent et marchent bien également. Qu'est-ce qui ne fonctionne pas ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009
Merci Frédéric et merci pour ton site qui est une mine d'informations
"FS" <fs@news.group> a écrit dans le message de news:
%23pFt%23ysLKHA.4028@TK2MSFTNGP05.phx.gbl...
Bonjour,
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça marche
très bien. Now ou Date suffisent et marchent bien également.
Qu'est-ce qui ne fonctionne pas ?
FS
--
Frédéric SIGONNEAU
Modules et modèles pour Excel :
http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour
Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps
Par exemple
if cdate(now) >= DateLimite then
On ferme le classeur
J'ai essayé ceci mais cela ne fonctionne pas
Sub Time()
If CDate(Now) >= Range("ExpirationDate").Value Then
MsgBox "Désolé, la période d'évaluation de ce classeur est
terminée.", vbOKOnly
ThisWorkbook.Close savechanges:úlse
End If
End Sub
en ExpirationDate j'ai 06/09/2009
Merci Frédéric et merci pour ton site qui est une mine d'informations "FS" a écrit dans le message de news: %23pFt%
Bonjour,
CDate(Now), c'est un peu trop, mais chez moi (Excel 2003 aussi) ça marche très bien. Now ou Date suffisent et marchent bien également. Qu'est-ce qui ne fonctionne pas ?
FS -- Frédéric SIGONNEAU Modules et modèles pour Excel : http://frederic.sigonneau.free.fr/
Pascal a écrit :
Bonjour Excel 2003
Est-il possible de limiter l'utilisation d'un classeur dans le temps Par exemple if cdate(now) >= DateLimite then On ferme le classeur J'ai essayé ceci mais cela ne fonctionne pas
Sub Time() If CDate(Now) >= Range("ExpirationDate").Value Then MsgBox "Désolé, la période d'évaluation de ce classeur est terminée.", vbOKOnly ThisWorkbook.Close savechanges:úlse End If End Sub en ExpirationDate j'ai 06/09/2009