XL pour MAC Oter la protection pendant un temps limité

chajmi

XLDnaute Occasionnel
Bonjour
Dans un fichier avec toutes les cellules protégées, je veux pouvoir donner à un opérateur, la possibilité de déverrouiller une cellule pour faire une correction, mais pendant un temps limité (exemple 30secondes).
Je souhaiterais que la protection se remette en place automatiquement, au bout du temps imparti.

Est ce envisageable en VBA ?. Merci d'avance au forum pour votre aide.
 

job75

XLDnaute Barbatruc
Bonjour chajmi,

Fichier joint avec dans le code de la feuille :
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim t#
Cancel = True
Protect "chajmi", UserInterfaceOnly:=True
Target.Locked = False
t = Timer + 30
If t > 86400 Then t = t - 86400 'après minuit
While Timer < t: DoEvents: Wend
Target.Locked = True
End Sub
Et dans ThisWorkbook :
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Feuil1 'CodeName
    .Protect "chajmi", UserInterfaceOnly:=True
    .Cells.Locked = True
End With
End Sub
A+
 

Pièces jointes

  • Classeur(1).xlsm
    20.9 KB · Affichages: 23

job75

XLDnaute Barbatruc
Re,

Voici une autre méthode, plus complète, avec Application.OnTime :
Code:
Dim t# 'mémorise la variable

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Cancel = True
RAZ
Unprotect "chajmi"
Target.Locked = False
Target.AddComment "Vous avez 30 secondes pour modifier la cellule"
Target.Comment.Shape.TextFrame.AutoSize = True
Protect "chajmi", AllowFormattingCells:=True
t = Now + 30 / 86400
Application.OnTime t, Me.CodeName & ".RAZ"
End Sub

Sub RAZ()
Unprotect "chajmi"
Cells.ClearComments
Cells.Locked = True
Protect "chajmi"
On Error Resume Next
Application.OnTime t, Me.CodeName & ".RAZ", , False
End Sub
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Feuil1.RAZ
End Sub
Fichier (2).

A+
 

Pièces jointes

  • Classeur(2).xlsm
    22.4 KB · Affichages: 23

Discussions similaires

Réponses
20
Affichages
795

Statistiques des forums

Discussions
312 196
Messages
2 086 097
Membres
103 116
dernier inscrit
kutobi87