A VBA-powered Excel template system for single-entry, multi-document generation.
Enter data once on a master sheet → automatically populate multiple document templates → export all as individual PDFs with one click.
Manual data entry across multiple related forms wastes time and introduces errors. If you're copying the same client name, address, or account details across 3-5 documents, you're doing it wrong.
Before: 45-60 minutes filling out repetitive forms
After: Under 10 minutes — enter once, generate all
- Single Data Entry Point — One master "Data Entry" sheet feeds all other tabs
- Auto-Population — Cell references pull data across worksheets automatically
- One-Click PDF Export — Generate individual PDFs for each document
- Organized Output — Files saved to named folders with timestamps
- Form Reset — Clear all fields button for the next account
- No Dependencies — Pure VBA, works in any Excel with macros enabled
excel-form-feeder/
├── README.md
├── LICENSE
├── src/
│ └── vba/
│ ├── Module1_GeneratePDFs.bas # PDF generation logic
│ └── Module2_ClearFields.bas # Form reset logic
├── templates/
│ └── FormFeeder_Template.xlsm # Starter workbook
└── docs/
└── USER_GUIDE.md # Setup instructions
- Download
templates/FormFeeder_Template.xlsm - Enable macros when prompted
- Customize the Data Entry sheet with your fields
- Link other tabs to the Data Entry cells using
='Data Entry'!C7references - Update the VBA modules with your field ranges
- Open your Excel workbook
- Press
Alt + F11to open VBA Editor - Import the
.basfiles fromsrc/vba/ - Customize the cell references and tab names
- Add buttons linked to the macros
Edit these values in Module1_GeneratePDFs.bas:
' Master sheet name
Set wsAccount = wb.Sheets("Data Entry")
' Cell containing the account/client name
clientName = Trim(wsAccount.Range("C7").Value)
' Output folder location
outputBase = "C:\Generated Documents\"
' Tabs to export as PDFs
tabs = Array("Data Entry", "Document 1", "Document 2", "Document 3")Edit Module2_ClearFields.bas to specify which cells to clear:
' Clear specific merged cells
wsData.Range("C7").MergeArea.ClearContents
' Clear a range
wsData.Range("B10:L20").ClearContents
' Reset to default value
wsData.Range("C11").Value = "FL"- Professional Services — Client intake forms, proposals, agreements
- HR/Payroll — Employee onboarding packets
- Real Estate — Listing documents, disclosures, contracts
- Insurance — Applications, quotes, policy documents
- Legal — Client matter setup, engagement letters
- Healthcare — Patient intake, consent forms
┌─────────────────┐
│ Data Entry │ ← User enters data here
│ (Master Tab) │
└────────┬────────┘
│
│ Cell References: ='Data Entry'!C7
▼
┌─────────────────┐
│ Document 1 │ ← Auto-populated
├─────────────────┤
│ Document 2 │ ← Auto-populated
├─────────────────┤
│ Document 3 │ ← Auto-populated
└─────────────────┘
│
│ GenerateAllPDFs()
▼
┌─────────────────┐
│ Individual │
│ PDF Files │
└─────────────────┘
- Reads account name from master sheet
- Creates timestamped folder
- Exports each tab as separate PDF
- Opens output folder when complete
- Microsoft Excel (Windows) with macros enabled
.xlsmfile format (macro-enabled workbook)- Write permissions to output directory
Note: macOS Excel has limited VBA support. Some features may not work.
- Fork the repository
- Create a feature branch
- Submit a pull request
MIT License — see LICENSE
Franklin J Bryant IV
ALL LINES BUSINESS SOLUTIONS
simplifyingbusinesses.com
Built with AI-accelerated development methodology.
