Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Bonjour,
Pas de souci.
Pour ton problème, il faut que les cellules soient déverrouillées au préalable.
Daniel
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
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
Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
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.
Bonjour,
Pas de souci.
Pour ton problème, il faut que les cellules soient déverrouillées au préalable.
Daniel
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
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
Bonjour,
Et avant le 15, y a-t-il quelque chose de bloqué ?
Daniel