Macro pour limiter les modifications sur un planning

Anonyme
2023-10-03T14:01:32+00:00

Bonjour,

Je cherche à verrouiller les modifications de mon planning de congés du service. Il faudrait dans l'idéal que le mois suivant soit bloqué si on a dépassé le 15 du mois en cours.

Ex : si on est le 15 octobre, je ne peux plus modifier le mois de novembre.

J'aimerai également que mon administrateur puisse quand même faire des modifications grâce à un mot de passe. J'ai donc cherché et construit cette macro-là :

Private Sub Worksheet_Change(ByVal Target As Range)

Dim currentDate As Date

Dim lockDate As Date

Dim password As String

currentDate = Date

lockDate = DateSerial(Year(currentDate), Month(currentDate), 15) - 1

password = "Marielle8"

Dim row6 As Range

Set row6 = Me.Rows(6)

If not currentDate > lockDate And Intersect(Target, row6) Is Nothing Then 

    Dim userInput As String

    userInput = InputBox("Entrez le mot de passe :")        

    If userInput = password Then  

        Me.Unprotect password

        row6.Locked = False

        Me.Protect password

    Else

        Me.Protect password

        MsgBox "mot de passe incorrect, aucune modification possible", vbExclamation

    End If

End If

End Sub

Seul hic : ça me déclenche le verrouillage de toute la feuille sans distinction des dates. Pour info, les dates sont toutes écrites en ligne 6.

Sauriez-vous soit améliorer cette macro ou bien m'en suggérer une autre ?

À bientôt

Microsoft 365 et Office | Excel | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

4 réponses

  1. DanielCo 107.7K Points de réputation
    2023-10-10T13:12:17+00:00

    Bonjour,

    Pas de souci.

    Pour ton problème, il faut que les cellules soient déverrouillées au préalable.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2023-10-10T12:52:05+00:00

    Bonjour,

    D'abord merci pour votre réponse et désolé pour mon délai de retour je n'avais pas accés à mon poste.

    Effectivement la macro verrouille bien la page mais dans sa totalité et je n'ai donc pas la possibilité de modifier les autres mois (novembre par exemple) il faut à chaque fois que j'ote le verrouillage de la feuille avec le mot de passe

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. DanielCo 107.7K Points de réputation
    2023-10-03T17:14:33+00:00

    Essaie :

    Dim C As Range
    If Day(Date) > 15 Then
    For Each C In Intersect(Columns(6), ActiveSheet.UsedRange)
    Debug.Print C.Address
    If IsDate(C) Then
    If C >= DateSerial(Year(Date), Month(Date) + 1, 1) Then
    C.Locked = True
    End If
    End If
    Next C
    End If

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. DanielCo 107.7K Points de réputation
    2023-10-03T17:00:34+00:00

    Bonjour,

    Et avant le 15, y a-t-il quelque chose de bloqué ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire