1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
|
Private Sub Worksheet_Change(ByVal Target As Range)
Dim wcCJ As Integer, wCVS As Integer, wCVD As Integer, wcVSE As Integer, wcVSC As Integer, ACTIVE_CELLULE As Range, wcZAA As String, wcZAB As String, wcZAC As String
Dim ZoneSourceVide As String, ZoneSource As String, ZoneDest As String
Dim wSh As Worksheet
Dim WSName As String, WsDes As String
Set ACTIVE_CELLULE = ActiveCell
wcZAA = "$E$15:$E$25"
wcZAB = "$E$27:$E$34"
wcZAC = "$E$26"
WSName = "FICHIER.xlsm"
WsDes = "ONGLET1"
If Target.Count > 1 Then Exit Sub
'Workbooks(WSName).Worksheets(WsDes).Unprotect Password:="PASSWORD"
Set wSh = ThisWorkbook.Worksheets("ONGLET1")
With wSh
ActiveWindow.DisplayZeros = False 'enlever les zéro en affichage
wcVSC = Val(.Range("AA15").Value)
wcVSE = Val(.Range("AA16").Value)
wCVS = Val(.Range("AA18").Value)
wCVD = Val(.Range("AA20").Value)
wcCJ = Val(.Range("CD2").Value)
ZoneSourceVide = "AO7:AQ7"
ZoneSource = "AO3:AQ3"
ZoneDest = "AO2:AO2"
'1 = protection
'2 = deprotection
If Target.Address = "$E$14" Then
Select Case wCVS
Case 35
Call PROTECTION_CELLULE(wcZAA, 2)
Call PROTECTION_CELLULE(wcZAC, 2)
Call PROTECTION_CELLULE(wcZAB, 1)
'blocker le bouton
Call CACHER_ENTITE(9)
'deblocker le bouton
Call DECACHER_ENTITE(10)
ACTIVE_CELLULE.Select
Case 26
'deblocker le bouton
Call DECACHER_ENTITE(9)
'blocker le bouton
Call CACHER_ENTITE(10)
Call PROTECTION_CELLULE(wcZAA, 1)
Call PROTECTION_CELLULE(wcZAC, 1)
Selection.ClearContents
Call PROTECTION_CELLULE(wcZAB, 2)
ACTIVE_CELLULE.Select
End Select
Else
Workbooks(WSName).Worksheets(WsDes).Protect Password:="PASSWORD", UserinterfaceOnly:=True
End
End If
End With
Set Sh = Nothing
'Workbooks(WSName).Worksheets(WsDes).Protect Password:="PASSWORD", UserinterfaceOnly:=True
End Sub
Sub PROTECTION_CELLULE(ByVal ZoneName As String, ByVal i As Byte)
'1 = protection
'2 = deprotection
Range(ZoneName).Select
' Dim WSName As String, WsDes As String
If i = 1 Then
Selection.Locked = True
Selection.FormulaHidden = False
' MsgBox "la cellule " & ZoneName & "est protégée"
ElseIf i = 2 Then
Selection.Locked = False
Selection.FormulaHidden = False
' MsgBox "la cellule " & ZoneName & "est déprotégée"
End If
End Sub
Sub CACHER_ENTITE(ByVal i As Byte)
Windows("FICHIER.xlsm").Activate
ActiveSheet.Shapes.Range(Array("Freeform " & i)).Visible = False
End Sub
Sub DECACHER_ENTITE(ByVal i As Byte)
'MsgBox "decacher - " & i
Windows("FICHIER.xlsm").Activate
ActiveSheet.Shapes.Range(Array("Freeform " & i)).Visible = True
End Sub |
Partager