For example,
Cash in Bank
Payroll Expense
Here's a rough example:
Set up two userforms UserForm1 and UserForm2.
UserForm1 has a label on it.
UserForm2 has a TreeView on it (You'll have to add this to your toolbox -> Right Click on the Tool Box -> Additional Controls... -> Microsoft TreeView Control, version 6.0)
Then behind UserForm1 add the following code:
Private Sub Label1_Click()
UserForm2.Show
End Sub
Behind UserForm2 add:
Option Explicit
#If VBA7 Then
Private Declare PtrSafe Function FindWindow Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare PtrSafe Function GetWindowLong Lib "User32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare PtrSafe Function SetWindowLong Lib "User32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare PtrSafe Function DrawMenuBar Lib "User32" ( _
ByVal hwnd As Long) As Long
#Else
Private Declare Function FindWindow Lib "User32" _
Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Private Declare Function GetWindowLong Lib "User32" _
Alias "GetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "User32" _
Alias "SetWindowLongA" (ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Private Declare Function DrawMenuBar Lib "User32" ( _
ByVal hwnd As Long) As Long
#End If
Sub RemoveTitleBar(frm As Object)
Dim lStyle As Long
Dim hMenu As Long
Dim mhWndForm As Long
If Val(Application.Version) < 9 Then
mhWndForm = FindWindow("ThunderXFrame", frm.Caption) 'for Office 97 version
Else
mhWndForm = FindWindow("ThunderDFrame", frm.Caption) 'for office 2000 or above
End If
lStyle = GetWindowLong(mhWndForm, -16)
lStyle = lStyle And Not &HC00000
SetWindowLong mhWndForm, -16, lStyle
DrawMenuBar mhWndForm
End Sub
Private Sub TreeView1_Click()
UserForm1.Label1 = TreeView1.SelectedItem
End Sub
Private Sub UserForm_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Call RemoveTitleBar(Me)
With Me
.StartUpPosition = 0
.Top = UserForm1.Top + (UserForm1.Height - UserForm1.InsideHeight) + UserForm1.Label1.Height + UserForm1.Label1.Top
.Left = UserForm1.Left + (UserForm1.Width - UserForm1.InsideWidth) + UserForm1.Label1.Left
End With
TreeView1.Nodes.Add Key:="Item1", Text:="Parent 1"
TreeView1.Nodes.Add Key:="Item2", Text:="Parent 2"
TreeView1.Nodes.Add Key:="Item3", Text:="Parent 3"
TreeView1.Nodes.Add "Item1", tvwChild, "one", "Item 1, Child node 1"
TreeView1.Nodes.Add "Item1", tvwChild, "two", "Item 1, Child node 2"
TreeView1.Nodes.Add "Item2", tvwChild, "three", "Item 2, Child node 1"
TreeView1.Nodes.Add "Item2", tvwChild, "four", "Item 2, Child node 2"
TreeView1.Nodes.Add "Item3", tvwChild, "five", "Item 3, Child node 1"
TreeView1.Nodes.Add "Item3", tvwChild, "six", "Item 3, Child node 2"
End Sub
This results in:
Click on the grey bar at the bottom of UserForm2 to dismiss
You can play around with this a lot more yourself - This is just a quick example of my previous comment. Have a look at adding a DropDown picture to the end of the Label