XL 2013 Bloquer une feuille

verdo28

XLDnaute Nouveau
Bonjour a tous,

Je n'arrive pas a faire quelque chose car novice dans excel et j'ai besoin d'aide.
Je voudrais protéger une plage de cellule [F1:F24] dans une feuille protégée après 168 secondes d'utilisation (Temp de réponse 7 secondes par cellule (soit 24*7=168))
je clique sur un bouton, 168 secondes plus tard les cellules [F1:F24] sont verrouillées.
Est-ce réalisable ?
Merci d'avance de votre aide
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Verdo,
Un essai en PJ.
Pour l'instant le temps est de 10s à modifier.
J'ai mis un décompteur. A 0 la feuille se verrouille ( sans mdp )
A voir si ça vous va comme solution.
VB:
Public Cptlance
Sub LancerCompteur()
    Sheets("Feuil1").Select
    ActiveSheet.Unprotect
    Cptlance = 1
    [Temps] = 10
    [Texte] = ""
    Lancer
End Sub
Sub ExecuterTimer()
    If Cptlance = 0 Then Exit Sub
    If [Temps] = 0 Then
        Cptlance = 0
        [Texte] = "Le temps est écoulé."
        Sheets("Feuil1").Select
        ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:=True
    Else
        [Temps] = [Temps] - 1
    End If
    t = Now + TimeSerial(0, 0, 1)
    Application.OnTime t, "ExecuterTimer"
End Sub
Sub Lancer()
    t = Now + TimeSerial(0, 0, 1)
    Application.OnTime t, "ExecuterTimer"
End Sub
 

Pièces jointes

  • 168secondes.xlsm
    27 KB · Affichages: 4

Dudu2

XLDnaute Barbatruc
VB:
Sub Bouton()
    Application.OnTime EarliestTime:=Now + TimeValue("00:02:48"), _
    Procedure:="VerrouilleCellules", Schedule:=True
End Sub

Sub VerrouilleCellules()
    Const FeuilleVerrouiller = 1                'A adapter
    Const MotDePasseFeuilleVerrouiller = "psw"  'A adapter
    
    ThisWorkbook.Worksheets(FeuilleVerrouiller).Unprotect MotDePasseFeuilleVerrouiller
    ThisWorkbook.Worksheets(FeuilleVerrouiller).Range("F1:F24").Locked = True
    ThisWorkbook.Worksheets(FeuilleVerrouiller).Protect MotDePasseFeuilleVerrouiller
End Sub
 

Dudu2

XLDnaute Barbatruc
Tu n'es pas obligé de verrouiller les cellules et protéger la feuille pour empêcher la modification des cellules "F1:F24" à l'échéance du timer.

En module:
Code:
Option Explicit

Public Verrou As Boolean

Sub Bouton()
    Verrou = False
    Application.OnTime EarliestTime:=Now + TimeValue("00:02:48"), _
    Procedure:="VerrouilleCellules", Schedule:=True
End Sub

Sub VerrouilleCellules()
    Verrou = True
End Sub

Et dans la feuille concernée:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
 
    If Not Intersect(Target, Me.Range("F1:F24")) Is Nothing Then
        If Verrou Then
            MsgBox "Le temps est écoulé, cellule non modifiable !"
            Application.Undo
        End If
    End If
 
    Application.EnableEvents = True
End Sub
 

verdo28

XLDnaute Nouveau
Bonjour, le code de sylvanu fonctionne très bien, mais entre temps j'ai changé d'idée. je le garde pour plus temps.
J'ai fait ceci (Leelou Calcul.xlsm) ma fille est très mauvaise en calcul et je ne trouvais pas ce que je voulais, donc j'ai fait ça avec des codes que j'ai glané par-ci par-la.
cela génère des chiffres aléatoire, me dit le nombre d'erreurs( a chaque erreur cela se mets en rouge et elle doit les corriger immédiatement puis cela se remet en noir) et le temps pour calculer les 24 lignes, les signes (- + / * ) peuvent être modifié pour s'adapter au niveau de l'enfant, ma femme veux que je fasse une sauvegarde du nombre de fois qu'on fait une série avec le nombre d'erreur et le temps . et tout ça au mois sur la feuil2. je lui est dit que je verrais ça plus tard .
Dites moi si des choses peuvent être améliorée par rapport a ce que j'ai déjà fait.
Merci
 

Pièces jointes

  • Leelou Calcul.xlsm
    40.3 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 912
Membres
103 983
dernier inscrit
AlbertCouillard