Bonjour,
Pour l'accès à la plage en écriture c'est facile avec un mot de passe. Par contre pour la lecture, c'est plus compliqué.
Voici un code qui à la fermeture du classeur met la police de la plage en blanc. A l'ouverture après mot de passe correct il suffit de sélectionner la plage pour que la police redevienne noir (c'est un peu du bricolage)
mettre ceci dans la feuille1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If [A1] = "12345" Then 'changer le mot de passe et le mettre où vous voulez
Selection.Font.ColorIndex = 0 'on sélectionne la plage HP et la couleur de police devient noir
Exit Sub
Else
colonne = Target.Column
If colonne >= 8 And colonne <= 16 Then
TestMotPasse
End If
End If
End Sub
'demander un mot de passe et limiter le nombre d'essai pour
'fournir le mot de passe correct
Sub TestMotPasse()
Dim okPswd As Boolean
okPswd = GetPassword("12345", 3) 'changer le mot de passe
If okPswd Then
'action
Else
'autre action
End If
End Sub
Function GetPassword(CorrectPswd As String, MaxTimes As Long) As Boolean
Dim Pswd As String
Dim TryTimes As Long
TryTimes = 1
GetPassword = False
Do
Pswd = InputBox("Pour accèder à cette plage de cellule il faut un mot de passe. Entrez votre mot de passe", "Mot de passe", "*****")
If Pswd = "" Then
Exit Function
End If
If Pswd <> CorrectPswd Then
TryTimes = TryTimes + 1
If TryTimes <= MaxTimes Then
MsgBox "Recommencez svp!", vbOKOnly + vbInformation, "Mot de passe"
End If
Else
GetPassword = True
[A1] = "12345" 'changer le mot de passe et le mettre où vous voulez
MsgBox "Mot de passe correct!", vbOKOnly + vbInformation, "Mot de passe"
Exit Function
End If
Loop Until TryTimes > MaxTimes
End Function
Mettre ceci dans ThisWorkbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Columns("H:P").Select
Selection.Font.ColorIndex = 2 'on met la plage HP avec couleur de police en blanc
Range("A1").Select
Range("A1") = ""
End Sub
Ensuite il faut protéger les macros par mot de passe.
Le Pivert