Bjr,
J'ai dans un classeur 6 feuilles que je souhaite protégées globalement ou partiellement.
J'utilise 2 type de code sur 3 feuilles me permettant d'une part sur double click d'obtenir la valeur "oui" ou "non"
Code ci-après :
----
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = True
Lig = Target.Row
col = Target.Column
If col = 7 Or col = 8 Or col = 12 Then
If Lig > 4 And Lig < 75 Then ' ici on limite entre les lignes 4 et 75 les questions
If Cells(Lig, col) = "Oui" Then
Cells(Lig, col) = "Non"
Else
Cells(Lig, col) = "Oui"
End If
End If
End If
End Sub
----------------
ou de masquer des lignes en fonction de la valeur d'une cellule
code ci-après :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim L1 As Integer, L2 As Integer, C1 As Integer, C2 As Integer
C1 = 7
C2 = 14
'Traitement Rubrique sans Sous-rubrique
If UCase(Range("G6")) = "OUI" Then
Else
L1 = 6
Range(Cells(L1, C1 + 1), Cells(L1, C2)).ClearContents
End If
'Traitement Rubrique avec sous-rubrique
If UCase(Range("G7")) = "OUI" Then
L1 = 8
L2 = 14
Rows(L1 & ":" & L2).EntireRow.Hidden = False
Else
L1 = 8
L2 = 14
Rows(L1 & ":" & L2).EntireRow.Hidden = True
Range(Cells(L1 - 1, C1 + 1), Cells(L1 - 1, C2)).ClearContents
Range(Cells(L1, C1), Cells(L2, C2)).ClearContents
End If
Application.EnableEvents = True
End Sub
Je n'arrive pas à inserer dans mon code les instructions me permettant de protéger mes feuilles sans pertuber le fonctionnement du code.
J'ai essayé cette méthode sans succès :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveSheet.Protect UserInterfaceOnly:=True
End Sub
Au niveau de mon code pour activer :
ActiveSheet.Protect UserInterfaceOnly:=false
en fin de code
ActiveSheet.Protect UserInterfaceOnly:=True
Merci pour votre aide.
J'ai dans un classeur 6 feuilles que je souhaite protégées globalement ou partiellement.
J'utilise 2 type de code sur 3 feuilles me permettant d'une part sur double click d'obtenir la valeur "oui" ou "non"
Code ci-après :
----
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Application.EnableEvents = True
Lig = Target.Row
col = Target.Column
If col = 7 Or col = 8 Or col = 12 Then
If Lig > 4 And Lig < 75 Then ' ici on limite entre les lignes 4 et 75 les questions
If Cells(Lig, col) = "Oui" Then
Cells(Lig, col) = "Non"
Else
Cells(Lig, col) = "Oui"
End If
End If
End If
End Sub
----------------
ou de masquer des lignes en fonction de la valeur d'une cellule
code ci-après :
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim L1 As Integer, L2 As Integer, C1 As Integer, C2 As Integer
C1 = 7
C2 = 14
'Traitement Rubrique sans Sous-rubrique
If UCase(Range("G6")) = "OUI" Then
Else
L1 = 6
Range(Cells(L1, C1 + 1), Cells(L1, C2)).ClearContents
End If
'Traitement Rubrique avec sous-rubrique
If UCase(Range("G7")) = "OUI" Then
L1 = 8
L2 = 14
Rows(L1 & ":" & L2).EntireRow.Hidden = False
Else
L1 = 8
L2 = 14
Rows(L1 & ":" & L2).EntireRow.Hidden = True
Range(Cells(L1 - 1, C1 + 1), Cells(L1 - 1, C2)).ClearContents
Range(Cells(L1, C1), Cells(L2, C2)).ClearContents
End If
Application.EnableEvents = True
End Sub
Je n'arrive pas à inserer dans mon code les instructions me permettant de protéger mes feuilles sans pertuber le fonctionnement du code.
J'ai essayé cette méthode sans succès :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveSheet.Protect UserInterfaceOnly:=True
End Sub
Au niveau de mon code pour activer :
ActiveSheet.Protect UserInterfaceOnly:=false
en fin de code
ActiveSheet.Protect UserInterfaceOnly:=True
Merci pour votre aide.