David,
You've clearly done a lot of work since the original, and understandably can't post private data. Since you're attachment doesn't include the Tasks sheet, which is where the code was that I had provided, I'm starting with my original code, and you'll need to make any adjustments. The following has the original loop (now pointing to Scorecard instead of Goals, and with tasks in columns G instead of B), but instead of the column numbers being hard-coded, they are in a variable. When it hits the end of the first set, it resets the row & col numbers and continues on the 2nd set. I couldn't test, but it should be close.
BTW, I didn't know Dwarves yodeled. I thought it was just the Hi Ho thing. 
Option Explicit
Dim GoalTxt As String, TaskTxt As String, EmpTxt As String, EmpCol As Long
Dim BegRw As Long, EndRw As Long, TaskEndRw As Long, GoalRw As Long, GoalCol As Long, Col As Long
Private Sub Worksheet_Activate()
With Sheets("SCORECARD")
If .Range("SelectionChanged").Value = True Then
.Range("SelectionChanged").Value = False
Call ShowGoalsAndTasks
Sheets("Employees").Range("EmpSelection").Value = "All Employees"
End If
End With
End Sub
Sub ShowGoalsAndTasks()
Application.ScreenUpdating = False
BegRw = 3
GoalRw = 7
GoalCol = 10 ' Col J
Rows(BegRw & ":" & Rows.Count).Hidden = False
TaskEndRw = Range("A" & Rows.Count).End(xlUp).Row
' Start with all rows hidden
Rows(BegRw & ":" & TaskEndRw).Hidden = True
With Sheets("SCORECARD")
Do Until .Cells(GoalRw, GoalCol).Value = "" ' Loop through selected tasks
GoalTxt = .Cells(GoalRw, GoalCol - 3).Value
TaskTxt = .Cells(GoalRw, GoalCol).Value
Do Until Cells(BegRw, 1).Value = GoalTxt Or BegRw > TaskEndRw
BegRw = BegRw + 1 ' Find selected goal
Loop
If BegRw > TaskEndRw Then
MsgBox GoalTxt & " goal not found."
Else ' Found it
If TaskTxt = "Not Pursuing" Then
Rows(BegRw - 1).Hidden = False
Else
Rows(BegRw).Hidden = False ' Goal Name
BegRw = BegRw + 1
EndRw = BegRw
If TaskTxt = "Pursuing - Show All Tasks" Then ' Find the end of this goal section
Do Until Left(Cells(EndRw, 1).Value, 12) = "Not Pursuing" Or EndRw > TaskEndRw Or _
Cells(EndRw, 1).Value = .Cells(GoalRw + 1, 2).Value
EndRw = EndRw + 1
Loop
Else
Do Until Cells(BegRw, 1).Value = TaskTxt Or BegRw > TaskEndRw
BegRw = BegRw + 1 ' Find selected task
Loop
If BegRw > TaskEndRw Then
MsgBox TaskTxt & " task not found."
Else ' Found it
EndRw = BegRw + 1
Do Until Cells(EndRw, 1).Value <> TaskTxt
EndRw = EndRw + 1 ' Find end of selected task
Loop
End If
End If
If Not BegRw > TaskEndRw Then
Rows(BegRw & ":" & EndRw - 1).Hidden = False
End If
End If
End If
GoalRw = GoalRw + 1
If .Cells(GoalRw, GoalCol).Value = "" And GoalCol = 10 Then ' Start next set of columns
GoalRw = 7
GoalCol = 20 ' Col T
End If
Loop
End With
' Start with all employee columns visible
Columns("C:AZ").Hidden = False
End Sub
Bookmarks