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

Limiter

4 réponses
Avatar
Pascal
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:=False
End If
End Sub
en ExpirationDate j'ai 06/09/2009

4 réponses

Avatar
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




Avatar
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




Avatar
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




Avatar
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