Hi Black Duck
Welcome to the forum...If I understand correctly then this is one option...
Only "Current tasks" - Right
This code in sheets("Your Task").Module
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A2")) Is Nothing Then
Application.EnableEvents = False
Who = Target
If Not Who = "" Then Macro
Application.EnableEvents = True
End If
End Sub
And this in a stand alone Module...
Option Explicit
Public Who As String
Sub Macro()
Dim Arr, Temp, Hdr As Boolean, ws As Worksheet, fnd As Range
Dim i As Long, lr As Long, cnt As Long
Application.ScreenUpdating = False
Hdr = False: cnt = 0
ReDim Temp(1 To 1000, 1 To 3) ' !Change to accommodate...
With Sheet3
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
If lr = 1 Or lr = 2 Then lr = 3
.Range("A3:A" & lr).EntireRow.Delete
For Each ws In ThisWorkbook.Sheets
If ws.Name Like "Project*" Then
With ws
lr = .Cells(.Rows.Count, 1).End(xlUp).Row
Set fnd = .Range("A:G").Find("Current Tasks", LookIn:=xlValues, lookat:=xlWhole)
If Not fnd Is Nothing Then
Arr = .Range("A" & fnd.Row + 1 & ":C" & lr).Value
For i = LBound(Arr) To UBound(Arr)
If Arr(i, 1) = Who Then
cnt = cnt + 1
If Hdr = False Then
Temp(cnt, 1) = ws.Name
cnt = cnt + 1
Hdr = True
End If
Temp(cnt, 1) = Arr(i, 1)
Temp(cnt, 2) = Arr(i, 2)
Temp(cnt, 3) = Arr(i, 3)
End If
Next i
End If
End With
End If
Hdr = False
Next ws
.Range("A4").Resize(cnt, 3) = Temp
End With
Application.ScreenUpdating = True
End Sub
Bookmarks