Sub MakeResult()
Dim i As Long, j As Long
j = 1
With Sheets("Result").Range("A1")
.Offset(0, 0) = "Name"
.Offset(0, 1) = "Team"
.Offset(0, 2) = "Task"
For i = 1 To Sheets("Source").Range("A1").CurrentRegion.Rows.Count - 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
If Sheets("Source").Range("A1").Offset(i, 2) = 1 Then
.Offset(j, 2) = "Task1"
If Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
j = j + 1
Next i
End With
End Sub
If you use ActiveX OptionButtons with the names OptAllDepartments, OptInternational and OptDomestic, then the following code will populate the Results sheet with the relevant records from the Source sheet for the OptionButton that is selected:
Sub MakeResult()
Dim i As Long, j As Long
Dim strTeam As String
If Sheets("Source").OptAllDepartments.Value = True Then
strTeam = "All"
ElseIf Sheets("Source").optInternational.Value = True Then
strTeam = "International"
Else
strTeam = "Domestic"
End If
j = 1
With Sheets("Result").Range("A1")
.Offset(0, 0) = "Name"
.Offset(0, 1) = "Team"
.Offset(0, 2) = "Task"
If strTeam = "All" Then
For i = 1 To Sheets("Source").Range("A1").CurrentRegion.Rows.Count - 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
If Sheets("Source").Range("A1").Offset(i, 2) = 1 Then
.Offset(j, 2) = "Task1"
If Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = Sheets("Source").Range("A1").Offset(i, 1)
.Offset(j, 2) = "Task3"
End If
j = j + 1
Next i
ElseIf strTeam = "International" Then
For i = 1 To Sheets("Source").Range("A1").CurrentRegion.Rows.Count - 1
If Sheets("Source").Range("A1").Offset(i, 1) = "International" Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
If Sheets("Source").Range("A1").Offset(i, 2) = 1 Then
.Offset(j, 2) = "Task1"
If Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
.Offset(j, 2) = "Task3"
End If
j = j + 1
End If
Next i
Else
For i = 1 To Sheets("Source").Range("A1").CurrentRegion.Rows.Count - 1
If Sheets("Source").Range("A1").Offset(i, 1) = "Domestic" Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "International"
If Sheets("Source").Range("A1").Offset(i, 2) = 1 Then
.Offset(j, 2) = "Task1"
If Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 3) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task2"
If Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
j = j + 1
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task3"
End If
ElseIf Sheets("Source").Range("A1").Offset(i, 4) = 1 Then
.Offset(j, 0) = Sheets("Source").Range("A1").Offset(i, 0)
.Offset(j, 1) = "Domestic"
.Offset(j, 2) = "Task3"
End If
j = j + 1
End If
Next i
End If
End With
End Sub