vérouillage d'onglet programmé dans le temps

franck8235

XLDnaute Junior
En premier lieu Bonne Année 2006 a tous et toutes qui comme moi aimez excel

Voila mon sujet je ne sait s'il il a des réponses mais peut être charmera t'il certain d'entre vous

Voila j'ai une feuille de calcul avec 12 onglet ex janv fev mars etc.....
je voudrais qu'au 05 du mois qui suit la feuille se vérouille automatiquement de façon a ne plus pouvoir y rentrer des données. et bien évidement pouvoir en cas de besoin la dévérouiller

Bon je sais l'idée est farfelu mais peut être est ce un sujet intéressant
 

porcinet82

XLDnaute Barbatruc
Salut franck,

Regarde le fichier joint pour voir si ca te convient.
Si tu as des questions n'hesite pas.

[file name=franck_20060111205921.zip size=12019]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/franck_20060111205921.zip[/file]

@+
 

Pièces jointes

  • franck_20060111205921.zip
    11.7 KB · Affichages: 13

myDearFriend!

XLDnaute Barbatruc
Bonsoir franck8235, porcinet82,

Ci-joint une autre solution possible utilisant la procédure ci-dessous lancée depuis Workbook_Open() :

Sub Verrou()
Dim F As String
Dim
D As Date
Dim
M As Byte
      For M = 1 To 11
            D = DateSerial(Year(Date), M + 1, 4)
            If Date > D Then
                  'Respectez ici la même orthographe et la même casse que pour le nom des onglets !
                  F = Choose(M, 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', _
                        'Août', 'Septembre', 'Octobre', 'Novembre')
                  ThisWorkbook.Sheets(F).Protect 'MotDePasse'
            Else
                  Exit For
            End If
      Next M
End Sub
Attention toutefois, comme ton classeur semble avoir une durée de vie de 12 mois et que tu ne stipules pas d'année de référence dans le nom de tes onglets, l'onglet 'Décembre' ne sera jamais verrouillé avec cette solution. En effet, en Janvier de l'année N+1, le cycle recommence et aucun mois ne sera donc considéré comme échu.

Si tu veux pouvoir tester cet exemple, il te suffit simplement de modifier la date système de ton micro avant ouverture du classeur (changement de la date système en double-cliquant sur l'horloge présente dans la barre des tâches de Windows par exemple). Dans ce cas, n'oublie pas de rétablir la bonne date système après tes tests.

Cordialement, [file name=mDF_VerrouillageOngletProgramme.zip size=18111]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_VerrouillageOngletProgramme.zip[/file]
 

Pièces jointes

  • mDF_VerrouillageOngletProgramme.zip
    17.7 KB · Affichages: 11
E

evelyne et francois

Guest
bonjour
juste comme ca !!

a mon boulot on ne peu pas modifier les dates systeme (il faut etres administrateur)
donc ne pas lancer les macros au demarrage permet toute fois d acceder aux feuilles protegée
bonne journée
EetF
 

coco_lapin

XLDnaute Impliqué
Bonjour le forum.

Pour détourner cet inconvénient (voir message de evelyne et francois) il faut mettre les codes proposés dans l'évenement 'Fermeture du classeur'.
Exemple

Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
' le code adapté
End Sub
 

porcinet82

XLDnaute Barbatruc
Bonjour a tous,

Que de réponses depuis hier soir. Je retiendrais pour ma part une partie du code de myDearFriend qui propose la fonction Choose que je ne connaissais pas m'ai qui s'avère tres pratique.

Merci pour ces nouvelles connaissances!!! ;)

@+
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir franck8235, porcinet82, evelyne et francois, coco_lapin, le Forum,

Evelyne et francois, modifier la date système n'a rien d'une obligation, c'était juste une astuce que je proposais à franck8235 afin qu'il puisse tester ce morceau de code... Maintenant, il a également la possibilité d'attendre le 05/03/06 si ça lui chante ! :) :) :)
En ce qui concerne la non activation des macros à l'ouverture, effectivement, je confirme que si on n'active jamais les macros, on n'obtiendra jamais l'effet des macros ! La question devient donc : pourquoi utiliser des macros si on ne souhaite pas les utiliser. Quant à 'comment obliger l'utilisateur a activer les macros', c'est une autre histoire et ce n'est pas vraiment le sujet là.

Coco_lapin, juste en passant... si les macros ne sont pas activées à l'ouverture du classeur, je ne vois pas comment elles le seraient à la fermeture ;) . Ton évènement Workbook_BeforeClose() ne fera pas plus d'effet que le Workbook_Open(), j'en ai bien peur... :whistle:

Cordialement,
 
F

franck8235

Guest
Merci a tous de vos réponse et de vos réflexions
mdf coco porcinet evelyne et françois

Déja une grande avancé c'est que le vérrouillage est possible par contre il est vrai que si on ne lance pas la macro le vérrou ne se met pas

l'idée que j'avais c'est que la fonction soit entierement automatique et n'appelle pas a lancer une commande par l'utilisateur je supose qu'il doit surement y avoir un moyen pour remédier

Merci encore
 

coco_lapin

XLDnaute Impliqué
Bonjour franck8235, porcinet82, evelyne et francois, myDearFriend! et le Forum.

La remarque de myDearFriend!, sur ce que j'avais raconté est juste.

Pour forcer l'utilisateur à l'ouverture du classeur il faut rendre ce classeur inutilisable si cette condition n'est pas remplie. Comme il veut l'utiliser il faudra bien qu'il active les macros.

Il faut donc masquer toutes les feuilles en veryhide sauf une feuille vierge sur laquelle on pourrait indiquer dans une cellule 'Voud devez activer les macros à l'ouverture du classeur'.
Il faut alors rendre utilisable le classeur sur l'évenement workbook_open.

Il faut ensuite tout remasquer à la fermeture du classeur.
 

Discussions similaires

Statistiques des forums

Discussions
312 612
Messages
2 090 227
Membres
104 453
dernier inscrit
benjiii88