I have the below VBA code working however the data that it is referencing I copy from another excel sheet and paste to this one. If I want to activate this VBA code I have to click in field D1, is there a way to have it just run automatically so I do not have to click in the field or does it have to be completed this way because I also am protecting and unprotecting the sheet?
Private Sub Worksheet_Change(ByVal Target As Range)Dim cel As Range
On Error GoTo ErrHandler
Application.EnableEvents = False
Application.ScreenUpdating = False
Worksheets("Asb Bulks").Unprotect Password:=""
If Not Intersect(Range("A1:A42"), Target) Is Nothing Then
For Each cel In Intersect(Range("A1:A42"), Target)
Worksheets("Asb Bulks").Cells(cel.Row + 25, 1) _
.EntireRow.Hidden = (cel.Value = "")
Next cel
End If
If Not Intersect(Range("F1:F42"), Target) Is Nothing Then
For Each cel In Intersect(Range("F1:F42"), Target)
Worksheets("Asb Bulks").Cells(cel.Row + 101, 1) _
.EntireRow.Hidden = (cel.Value = "")
Next cel
End If
If Not Intersect(Range("D1"), Target) Is Nothing Then
If Target.Value = "COMPANY" Then
Worksheets("Asb Bulks").Range("a162:a163").EntireRow.Hidden = False
Worksheets("Asb Bulks").Range("a173:a179").EntireRow.Hidden = False
Worksheets("Asb Bulks").Range("a160:a160").EntireRow.Hidden = False
Worksheets("Asb Bulks").Range("a170:a170").EntireRow.Hidden = False
Else
Worksheets("Asb Bulks").Range("a162:a163").EntireRow.Hidden = True
Worksheets("Asb Bulks").Range("a173:a179").EntireRow.Hidden = True
Worksheets("Asb Bulks").Range("a160:a160").EntireRow.Hidden = True
Worksheets("Asb Bulks").Range("a170:a170").EntireRow.Hidden = True
End If
End If
ExitHandler:
On Error Resume Next
Worksheets("Asb Bulks").Protect Password:=""
Application.EnableEvents = True
Application.ScreenUpdating = True
Exit Sub
ErrHandler:
MsgBox Err.Description, vbExclamation
Resume ExitHandler
End Sub
Dustin Shepard