Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
ActiveSheet.Unprotect
If Target.Address = "$B$1" Then Call FormulesExped
If Target.Address = "$E$2" Then UserForm1.Show
Dim X&
With Range("B5:B44")
.RowHeight = 42.5
.EntireRow.Hidden = True
End With
For X = 5 To 44
If Cells(X, 2) = "n° OF" And Cells(X, 5) > 0 Then Cells(X, 2).EntireRow.Hidden = True
Next X
For X = 5 To 44
If Cells(X, 2) > 0 And Cells(X, 5) > 0 Then Cells(X, 2).EntireRow.Hidden = False
Next X
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Range("B2").Select
End Sub