Hi Jan,
Thanks for your time today.
I need to make a reporting macro for my job that will automatically look at the data and put the employee names across the top of another sheet, regardless of how many employees are at a location.
Example:
Site 1 has 5 employees
Site 2 has 10 employees
Site 3 has 7 employees
All of this information would be contained on a column C of the tab called Site1 (or Site2, or Site3).
I want the macro to automatically scan column C, count the number of unique instances of text, and copy each unique instance into the next successive colum from range B1 onwards to the right. I think I need to use CountIf? Can you help?
I assumed the sheet you want the results to go to is named TargetSheet.
Paste the code below into a normal module:
Sub CopyUniqueNames()
Dim oCell As Range Dim oSht As Worksheet Dim oFound As Range For Each oSht In Worksheets If oSht.Name <> "TargetSheet" Then For Each oCell In Intersect(oSht.UsedRange, oSht.Range("C:C")) On Error Resume Next Set oFound = Nothing With Worksheets("TargetSheet") Set oFound = .Range("1:1").Find(What:=oCell.Value, _ After:=.Range("A1"), _ LookIn:=xlFormulas, _ LookAt:=xlWhole, _ MatchCase:=False) If oFound Is Nothing Then .Cells(1, .Columns.Count).End(xlToLeft).Offset(, 1).Value = oCell.Value End If End With Next End If Next
End Sub
Advertisement