De plus, peut tu me dire pourquoi je ne peux plus accéder à cette formule, l'onglet reste inactif (gris)
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("D6:D44")) Is Nothing Then 'On n'indique l'heure que si la cellule est vide ou n'est pas vérouillé If ActiveCell.Locked False Or ActiveCell.Value "" Then 'Déprotège la feuille pour insérer l'heure Target.Worksheet.Unprotect 'Change le format de la date du jour au format heure : minutes 'A modifier selon tes besoins ActiveCell.Value = VBA.Format(Now(), "hh:mm") 'Vérouille la cellule saisie ActiveCell.Locked = True 'Protège la feuille Target.Worksheet.Protect End If End If End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionIf Not Intersect(Target, Range("D6:D44")) Is Nothing Then
If Not Intersect(Target, Range("E1:E20")) Is Nothing Then
Is Nothinget
Thenle code
Or Not Intersect(Target, Range("F1:F20")) Is Nothing
If Not Intersect(Target, Range("D6:D44")) Is Nothing Or Not Intersect(Target, Range("E1:E20")) Is Nothing Then
If Not Intersect(Target, Range("D6:D44")) Is Nothing Or Not Intersect(Target, Range("D50:D75")) Is Nothing Or Not Intersect(Target, Range("E1:E20")) Is Nothing Then
ThisWorkbook.Save
'Cette variable "mdp" permettra de stocker le mot de passe pour 'vérouiller / dévérouiller la feuille et les cellules à chaques saisies Public mdp As String Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("D6:D44")) Is Nothing Then 'On indique l'heure que si la cellule est vide ou n'est pas vérouillé If ActiveCell.Locked False Or ActiveCell.Value "" Then 'Cette variable va servir à garder l'état initiale de l'affichage des messages d'alerte Dim afficherMessage As Boolean 'On récupère l'état d'affichage des messages d'alerte afficherMessage = Application.DisplayAlerts 'On désactive les messages d'alerte Application.DisplayAlerts = False 'Si le mot de passe est vide (on ne la pas encore saisie) If mdp = "" Then 'Si la feuille n'est pas vérouillé If Target.Worksheet.ProtectContents = False Then 'On demande un mot de passe mdp = InputBox("Veuillez saisir un mot de passe pour vérouiller la feuille :") 'On la vérouille Target.Worksheet.Protect mdp Else 'Sinon c'est que la feuille est vérouillé, alors on demande de saisir le mot de passe 'pour pouvoir saisir les valeurs à l'avenir mdp = InputBox("Veuillez saisir le mot de passe de la feuille :") End If End If 'Déprotège la feuille pour insérer l'heure Target.Worksheet.Unprotect mdp 'Change le format de la date du jour au format heure : minutes 'A modifier selon tes besoins ActiveCell.Value = VBA.Format(Now(), "hh:mm") 'Vérouille la cellule saisie ActiveCell.Locked = True 'Protège la feuille Target.Worksheet.Protect mdp 'Enregistre le classeur à chaque saisie ThisWorkbook.Save 'On remet l'état d'affichage des messages d'alerte à l'origine Application.DisplayAlerts = afficherMessage End If End If End Sub