Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
With ActiveSheet
Select Case .Range('J19').Value
Case 1 To 5 ' Si valeur entre 1 et 5, on aurait aussi pu faire
'Case 1,2,3,4,5 mais c'est moins propre
'ou encore un case par valeur : case 1, puis, case 2, etc...
.Shapes('Angle45').Visible = True
.Shapes('AngleDroit').Visible = False
.Shapes('Angle0').Visible = False
Case 12 To 17 ' Si valeur entre 12 et 17
.Shapes('Angle45').Visible = False
.Shapes('AngleDroit').Visible = True
.Shapes('Angle0').Visible = False
Case 6 To 11, 18 To 42 ' Si valeur comprise entre 6 et 11 & 18 et 42
.Shapes('Angle45').Visible = False
.Shapes('AngleDroit').Visible = False
.Shapes('Angle0').Visible = True
Case Else 'Autres Valeurs y compris Null
Exit Sub
End Select
End With
Application.ScreenUpdating = True
End Sub