1 2 ''' // **************************************************************** 3 ''' // Resize User Form 4 ''' // Demo 5 ''' // (c)digital-ecom GmbH, 2009 6 7 ''' // Main: Create some dummy controls and show User Form. 8 ''' // **************************************************************** 9 10 Option Explicit 11 Option Private Module 12 13 ''' // Main: 14 Sub showResizeDemo() 15 Dim dlgCaption As String 16 Dim TreeView As TreeView 17 Dim XNode As Node 18 Dim WS As Worksheet 19 Dim r As Long 20 Dim c As Integer 21 Dim lr As Long 22 Dim lc As Integer 23 Const BASEPOSITION As Integer = 1 24 Const TREEVIEW_BASE_TEXT As String = "World" 25 26 ''' // Use Windows API calls in order to add Minimize and Maximize Buttons 27 dlgCaption = dlgResizeDemo.Caption 28 Call Tools.UserForm_AddMaximizeBtn(dlgCaption) 29 30 ''' // Declare Worksheet to read dummy data from 31 Set WS = ThisWorkbook.Worksheets("ResizeDemoCountryLists") 32 lr = Tools.Get_Last_Row(WS) 33 lc = Tools.Get_Last_Column(WS) 34 35 ''' // Create a dummy treeview ctrl 36 Set TreeView = dlgResizeDemo.TreeView1 37 TreeView.Nodes.Clear 38 Set XNode = TreeView.Nodes.Add(, , """" & BASEPOSITION & """", TREEVIEW_BASE_TEXT) 39 For c = 1 To lc 40 Set XNode = TreeView.Nodes.Add("""" & BASEPOSITION & """", tvwChild, """" & BASEPOSITION & c & """", WS.Cells(1, c).Value) 41 Next 42 TreeView.HideSelection = False 43 TreeView.Nodes("""" & BASEPOSITION & 1 & """").Selected = True 44 c = TreeView.SelectedItem.Index - 1 45 46 ''' // ''' // Create dummy ListBox ctrls 47 Call ListView1_Set(WS, lr, c) 48 Call ListView2_Set(WS, lr) 49 50 dlgResizeDemo.Show 51 End Sub 52 53 Sub ListView1_Set(WS As Worksheet, lr As Long, c As Integer) 54 Dim r As Long 55 Dim sString As String 56 57 dlgResizeDemo.ListBox1.Clear 58 If c = 0 Then 59 dlgResizeDemo.ListBox2.Clear 60 Exit Sub 61 End If 62 63 For r = 2 To lr 64 sString = WS.Cells(r, c).Value 65 If sString = "" Then 66 Else 67 Call dlgResizeDemo.ListBox1.AddItem(sString) 68 End If 69 Next 70 dlgResizeDemo.ListBox1.ListIndex = 1 71 End Sub 72 73 Sub ListView2_Set(WS As Worksheet, lr As Long) 74 Dim r As Long 75 76 dlgResizeDemo.ListBox2.Clear 77 78 For r = 2 To lr 79 If dlgResizeDemo.ListBox1.ListIndex = 1 Then 80 dlgResizeDemo.ListBox2.AddItem (r) 81 ElseIf dlgResizeDemo.ListBox1.ListIndex = 2 Then 82 dlgResizeDemo.ListBox2.AddItem (r * 2) 83 Else 84 dlgResizeDemo.ListBox2.AddItem (r * 10) 85 End If 86 Next 87 End Sub 88