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
| Sub AfficherMasquerColonnes()
Dim i As Integer, Decalage As Integer
Dim Sh As Shape
With ActiveSheet
.Unprotect Password:="" 'mot de passe à placer entre ces guillemets
Set Sh = .Shapes(Application.Caller)
If Sh.TopLeftCell.Column > 1 Then Decalage = 7
If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 1
If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = True Then i = 2
If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True And _
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 3
If .Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False And _
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False Then i = 4
Select Case i
Case 1
.Range(.Columns(2 + Decalage), .Columns(3 + Decalage)).Hidden = True
.Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = False
Case 2
.Range(.Columns(4 + Decalage), .Columns(5 + Decalage)).Hidden = True
.Range(.Columns(6 + Decalage), .Columns(7 + Decalage)).Hidden = False
Case 3
.Range(.Columns(2 + Decalage), .Columns(7 + Decalage)).Hidden = False
Case 4
.Range(.Columns(4 + Decalage), .Columns(7 + Decalage)).Hidden = True
End Select
.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True, Password:="" 'mot de passe à placer entre ces guillemets
End With
End Sub |
Partager