MAC - Optimisation code VBA
Bonsoir à tous!
Tout est dans le titre...
Je cherche à optimiser ce code pour qu'il soit moins long et qu'il soit plus rapide à exécuter...
Si quelqu'un a 5 minutes à perdre !!!
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C23").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J23:K23").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J23:K23").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C24").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J24:K24").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J24:K24").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C25").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J25:K25").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J25:K25").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C26").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J26:K26").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J26:K26").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C27").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J27:K27").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J27:K27").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C28").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J28:K28").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J28:K28").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C29").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J29:K29").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J29:K29").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C30").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J30:K30").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J30:K30").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C31").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J31:K31").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J31:K31").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C32").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J32:K32").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J32:K32").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C33").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J33:K33").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J33:K33").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
If Range("C34").Value = "FMC" Then
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J34:K34").Locked = True
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
Else
ActiveSheet.Unprotect "MOT DE PASSE"
Range("J34:K34").Locked = False
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
ActiveWindow.SmallScroll Down:=-100
ActiveWindow.SmallScroll Down:=11
End If
End Sub
Bonjour
A vérifier si cela peut convenir
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("C23:C34"), Target) Is Nothing And Target.Count = 1 Then
ActiveSheet.Unprotect "MOT DE PASSE"
If Target.Value = "FMC" Then
Range("J" & Target.Row).Resize(, 2).Locked = True
Else
Range("J" & Target.Row).Resize(, 2).Locked = False
End If
ActiveSheet.Protect "MOT DE PASSE", _
DrawingObjects:=True, _
Contents:=True, Scenarios:=True, _
UserInterfaceOnly:=True
End If
End Sub
Tout simplement parfait !!!
Un grand MERCI à toi Banzai64
Rapidité et efficacité... Au top !!!
Encore Merci !