Re : Autoriser Macro à écrire dans une feuille protégée SANS mot de passe
ah si une info supplémentaire, ma macro est directement dans la feuille 1 et pas dans un module, elle démarre toute seule et en permanence. C'est une macro pour mettre en couleur la ligne et la colonne dans laquelle se trouve la cellule active ...
Peut-être que ça peut aider, je suis obliger de supprimer la macro pour pouvoir oter la protection de la feuille, c'est bien embêtant. Ma macro :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iColor As Integer
UserInterfaceOnly = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True, UserInterfaceOnly:=True
'// Remarque : ne pas utiliser si vous avez des mises en forme
'// conditionnelles que vous souhaitez conserver
'// On Error reprend si l'utilisateur sélectionne une plage de cellules
On Error Resume Next
iColor = Target.Interior.ColorIndex
'// Laisse On Error ACTIVÉ pour les erreurs de décalage de lignes
If iColor < 0 Then
iColor = 36
Else
iColor = iColor + 1
End If
'// Test nécessaire si la couleur de la police est la même
If iColor = Target.Font.ColorIndex Then iColor = iColor + 1
Cells.FormatConditions.Delete
'// Bande de couleur horizontale
With Range("A" & Target.Row, Target.Address) 'Rows(Target.Row)
.FormatConditions.Add Type:=2, Formula1:="VRAI"
'***Remplacer VRAI par TRUE si version anglaise
.FormatConditions(1).Interior.ColorIndex = iColor
End With
'// Bande de couleur verticale
With Range(Target.Offset(1 - Target.Row, 0).Address & ":" & _
Target.Offset(-1, 0).Address) 'Rows(Target.Row)
.FormatConditions.Add Type:=2, Formula1:="VRAI"
'***Remplacer VRAI par TRUE si version anglaise
.FormatConditions(1).Interior.ColorIndex = iColor
End With
End Sub