Linked List Hierarchy extraction
The following code filters a list of employee falling under the select employee in a hierarchy. Download the attached file and see how it works.
Option Explicit Option Compare Text Dim strFinalList As String Sub Filter_Click() Dim strHead As String strFinalList = vbNullString strHead = InputBox("Employee Id:", "Linked list filter") If strHead = vbNullString Then Exit Sub 'Pass Employee Id Col# and Manager Id Col# or you can have your 'own search columns Call FilterList(Sheet1.Range("A1").CurrentRegion, strHead, 1, 3) End Sub Sub FilterList(rngDataWithHeader As Range, strEmployee As String, intEmployeeCol As Integer, intManagerCol As Integer) Dim wks As Worksheet Dim arrData Set wks = rngDataWithHeader.Parent strFinalList = vbNullString arrData = rngDataWithHeader Call GetReportees(strEmployee, arrData, intEmployeeCol, intManagerCol) Application.ScreenUpdating = False If Not wks.AutoFilterMode = False Then wks.AutoFilterMode = False strFinalList = strFinalList & ";" & strEmployee rngDataWithHeader.AutoFilter Field:=intEmployeeCol, Criteria1:=Split(strFinalList, ";"), Operator:=xlFilterValues Application.ScreenUpdating = True strFinalList = vbNullString If IsArray(arrData) Then Erase arrData Set wks = Nothing End Sub Sub GetReportees(strHead As String, arr, intEmpIdCol As Integer, intManagerIdCol As Integer) Dim lngX As Long Dim strReportees As String Dim arrReportees For lngX = LBound(arr, 1) To UBound(arr, 1) If arr(lngX, intManagerIdCol) = strHead Then strReportees = strReportees & ";" & arr(lngX, intEmpIdCol) End If Next lngX strReportees = Mid(strReportees, 2) If strReportees <> vbNullString Then If strFinalList = vbNullString Then strFinalList = strReportees Else strFinalList = strFinalList & ";" & strReportees End If arrReportees = Split(strReportees, ";") For lngX = LBound(arrReportees, 1) To UBound(arrReportees, 1) Call GetReportees(CStr(arrReportees(lngX)), arr, intEmpIdCol, intManagerIdCol) Next lngX End If If IsArray(arrReportees) Then Erase arrReportees End Sub
Attachment | Size |
---|---|
Link List Employee Hierarchy.xlsm | 18.23 KB |
»
- Vishesh's blog
- Login or register to post comments
- 5545 reads
Recent comments
5 years 36 weeks ago
6 years 22 weeks ago
6 years 34 weeks ago
6 years 37 weeks ago
6 years 38 weeks ago
6 years 43 weeks ago
6 years 52 weeks ago
7 years 2 days ago
7 years 3 days ago
7 years 3 days ago