Merge pull request 'mastre' (#3) from mastre into 1.0.9
Reviewed-on: https://nestict-codelab.ezj3n3.easypanel.host/Nestict_Infotech/MS_Excel_VBA_Reporting_Template/pulls/3
This commit is contained in:
commit
4af67db419
145
Manual
Normal file
145
Manual
Normal file
@ -0,0 +1,145 @@
|
||||
**User Manual for Excel Filtering System**
|
||||
|
||||
---
|
||||
|
||||
## **Introduction**
|
||||
This manual provides step-by-step instructions on how to use the Excel-based filtering system to generate reports based on selected criteria, such as Year, Program, and County. It also explains how to reset filters and clear reports.
|
||||
|
||||
---
|
||||
|
||||
## **1. System Components**
|
||||
|
||||
### **1.1 Dashboard Sheet**
|
||||
- The main interface for interacting with the data.
|
||||
- Contains filter options and action buttons.
|
||||
- Displays filtered results from the "Datasheet".
|
||||
|
||||
### **1.2 Datasheet**
|
||||
- Stores the raw data that is used for filtering and reporting.
|
||||
- Contains columns such as ID, Beneficiary Name, Program, Year, Business Type/Course, and County of Residence.
|
||||
|
||||
### **1.3 VBA Code Module**
|
||||
- Automates data extraction based on selected filters.
|
||||
- Provides functionalities such as generating reports, resetting filters, and clearing reports.
|
||||
|
||||
---
|
||||
|
||||
## **2. Using the System**
|
||||
|
||||
### **2.1 Applying Filters**
|
||||
1. **Navigate to the Dashboard sheet.**
|
||||
2. **Select filter values:**
|
||||
- Choose a Year from the dropdown under "Year".
|
||||
- Select a Program from the dropdown under "Program".
|
||||
- Select a County from the dropdown under "County".
|
||||
3. **Click the "Apply Filters" button.**
|
||||
- The system will filter data from the "Datasheet" and display results in the Dashboard.
|
||||
- If no matching records are found, a message box will notify you.
|
||||
|
||||
### **2.2 Resetting Filters**
|
||||
1. **Click the "Reset Filters" button.**
|
||||
2. This will remove all applied filters and display the entire dataset in the Dashboard.
|
||||
|
||||
### **2.3 Generating County Reports**
|
||||
1. **Ensure filters are correctly set (Year, Program, County).**
|
||||
2. **Click the "Generate County Reports" button.**
|
||||
3. The system will extract and display relevant data in the Dashboard.
|
||||
|
||||
### **2.4 Clearing Reports**
|
||||
1. **Click the "Reset/Clear Reporting" button.**
|
||||
2. This will clear all previously displayed data from the Dashboard.
|
||||
|
||||
---
|
||||
|
||||
## **3. Technical Details**
|
||||
|
||||
### **3.1 VBA Code for Filtering Data**
|
||||
The VBA macro automatically applies filters and copies the relevant data to the Dashboard.
|
||||
|
||||
```vba
|
||||
Sub FilterAndExtractData()
|
||||
Dim wsData As Worksheet, wsDash As Worksheet
|
||||
Dim lastRow As Long, headerRow As Long
|
||||
Dim yearFilter As String, programFilter As String, countyFilter As String
|
||||
Dim filterRange As Range, copyRange As Range
|
||||
|
||||
' Set references to sheets
|
||||
Set wsData = ThisWorkbook.Sheets("Datasheet")
|
||||
Set wsDash = ThisWorkbook.Sheets("Dashboard")
|
||||
|
||||
' Define last row of data
|
||||
lastRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row
|
||||
headerRow = 1
|
||||
|
||||
' Get filter values from Dashboard
|
||||
yearFilter = wsDash.Range("B7").Value
|
||||
programFilter = wsDash.Range("C7").Value
|
||||
countyFilter = wsDash.Range("D7").Value
|
||||
|
||||
' Clear previous results
|
||||
wsDash.Range("A10:L35").ClearContents
|
||||
|
||||
' Set filter range
|
||||
Set filterRange = wsData.Range(wsData.Cells(headerRow, 1), wsData.Cells(lastRow, wsData.UsedRange.Columns.Count))
|
||||
|
||||
' Apply AutoFilter
|
||||
filterRange.AutoFilter Field:=3, Criteria1:=yearFilter
|
||||
filterRange.AutoFilter Field:=2, Criteria1:=programFilter
|
||||
filterRange.AutoFilter Field:=5, Criteria1:=countyFilter
|
||||
|
||||
' Check if visible cells exist
|
||||
On Error Resume Next
|
||||
Set copyRange = filterRange.Offset(1, 0).Resize(filterRange.Rows.Count - 1).SpecialCells(xlCellTypeVisible)
|
||||
On Error GoTo 0
|
||||
|
||||
If Not copyRange Is Nothing Then
|
||||
wsData.Rows(headerRow).Copy Destination:=wsDash.Rows(9)
|
||||
copyRange.Copy
|
||||
wsDash.Cells(10, 1).PasteSpecial Paste:=xlPasteValues
|
||||
wsDash.Cells(10, 1).PasteSpecial Paste:=xlPasteFormats
|
||||
Application.CutCopyMode = False
|
||||
Else
|
||||
MsgBox "No records found for selected filters!", vbExclamation
|
||||
End If
|
||||
|
||||
' Turn off AutoFilter
|
||||
wsData.AutoFilterMode = False
|
||||
End Sub
|
||||
```
|
||||
|
||||
### **3.2 VBA Code for Clearing Reports**
|
||||
```vba
|
||||
Sub ClearReportsButton()
|
||||
Dim ws As Worksheet
|
||||
Application.ScreenUpdating = False
|
||||
Application.DisplayAlerts = False
|
||||
|
||||
For Each ws In ThisWorkbook.Sheets
|
||||
If ws.Name <> "Dashboard" And ws.Name <> "Datasheet" And ws.Name <> "Code" Then
|
||||
ws.Delete
|
||||
End If
|
||||
Next ws
|
||||
|
||||
Application.DisplayAlerts = True
|
||||
Application.ScreenUpdating = True
|
||||
MsgBox "All county reports have been cleared!", vbInformation
|
||||
End Sub
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## **4. Troubleshooting**
|
||||
|
||||
| **Issue** | **Solution** |
|
||||
|-----------|-------------|
|
||||
| "No records found for selected filters!" | Ensure the selected filter values exist in the "Datasheet". |
|
||||
| "Error when applying filters" | Check if the headers in "Datasheet" match the VBA filter fields. |
|
||||
| "Clear Reports button not working" | Ensure the correct sheet names are being referenced in the code. |
|
||||
|
||||
---
|
||||
|
||||
## **5. Conclusion**
|
||||
This Excel filtering system allows users to efficiently filter and extract data based on selected criteria. With the provided VBA scripts, users can automate data extraction, reset filters, and clear reports easily. If any modifications are needed, update the VBA code accordingly.
|
||||
|
||||
For further assistance, please contact the system administrator.
|
||||
|
@ -15,7 +15,7 @@ The **MS Excel VBA Reporting Template** is designed to automate the generation o
|
||||
- **Error Handling**: Includes basic error handling mechanisms for smoother operation.
|
||||
|
||||
## Prerequisites
|
||||
- Microsoft Excel (2016 or later recommended)
|
||||
- Microsoft Excel (2010 or later recommended)
|
||||
- Macros enabled (Ensure that macro settings allow execution of VBA scripts)
|
||||
- Basic knowledge of VBA (optional but beneficial for customization)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user