ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   UserForm Question, Excel 2000 & 2003 (https://www.excelbanter.com/excel-programming/382886-userform-question-excel-2000-2003-a.html)

jfcby[_2_]

UserForm Question, Excel 2000 & 2003
 
Hello,

I created a form in workbook1 that will access all open workbooks.
This is my problem I have 2 listboxes; listbox1 is in the
UserForm_Initialize() event which adds all open workbooks to it. Now I
need, when a workbook in ListBox1 is clicked it adds all worksheets in
listbox2. Below is the following code I've tried and does not work:

'==== This adds the workbook names to listbox1
Private Sub UserForm_Initialize()
Dim wb As Workbook
With ListBox1
For Each wb In Workbooks
.AddItem (wb.Name)
Next wb
.ListIndex = 1
End With
End Sub
'<<====

'==== This does not add worksheets to listbox2 when workbook is
clicked in listbox1
'Tried Code1 also with the Change_event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
With ListBox2
For Each wks In ActiveWorkbook.Worksheets
.AddItem (wks.Name)
Next
End With
End Sub

'Tried Code2 also with the Change_Event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
ListBox2.AddItem(wks.Name) = ListBox1.Value
End Sub

Thank you for your help,
jfcby


NickHK

UserForm Question, Excel 2000 & 2003
 
The listIndex property is 0 based, so I assumed you wanted the first (0) WB
selected not the second (1).
Also you need to .Clear listbox2 before you populate it each time

Try this:

Private Sub UserForm_Initialize()
Dim wb As Workbook

With ListBox1
For Each wb In Workbooks
.AddItem wb.Name
Next wb
.ListIndex = 0
End With
End Sub


Private Sub ListBox1_Click()
Dim wks As Worksheet
Dim WKS_Name As String

WKS_Name = ListBox1.List(ListBox1.ListIndex)

With ListBox2
.Clear
For Each wks In Workbooks(WKS_Name).Worksheets
.AddItem wks.Name
Next
End With
End Sub

NickHK

"jfcby" wrote in message
oups.com...
Hello,

I created a form in workbook1 that will access all open workbooks.
This is my problem I have 2 listboxes; listbox1 is in the
UserForm_Initialize() event which adds all open workbooks to it. Now I
need, when a workbook in ListBox1 is clicked it adds all worksheets in
listbox2. Below is the following code I've tried and does not work:

'==== This adds the workbook names to listbox1
Private Sub UserForm_Initialize()
Dim wb As Workbook
With ListBox1
For Each wb In Workbooks
.AddItem (wb.Name)
Next wb
.ListIndex = 1
End With
End Sub
'<<====

'==== This does not add worksheets to listbox2 when workbook is
clicked in listbox1
'Tried Code1 also with the Change_event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
With ListBox2
For Each wks In ActiveWorkbook.Worksheets
.AddItem (wks.Name)
Next
End With
End Sub

'Tried Code2 also with the Change_Event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
ListBox2.AddItem(wks.Name) = ListBox1.Value
End Sub

Thank you for your help,
jfcby




jfcby[_2_]

UserForm Question, Excel 2000 & 2003
 
On Feb 9, 12:48 am, "NickHK" wrote:
The listIndex property is 0 based, so I assumed you wanted the first (0) WB
selected not the second (1).
Also you need to .Clear listbox2 before you populate it each time

Try this:

Private Sub UserForm_Initialize()
Dim wb As Workbook

With ListBox1
For Each wb In Workbooks
.AddItem wb.Name
Next wb
.ListIndex = 0
End With
End Sub

Private Sub ListBox1_Click()
Dim wks As Worksheet
Dim WKS_Name As String

WKS_Name = ListBox1.List(ListBox1.ListIndex)

With ListBox2
.Clear
For Each wks In Workbooks(WKS_Name).Worksheets
.AddItem wks.Name
Next
End With
End Sub

NickHK

"jfcby" wrote in message

oups.com...



Hello,


I created a form in workbook1 that will access all open workbooks.
This is my problem I have 2 listboxes; listbox1 is in the
UserForm_Initialize() event which adds all open workbooks to it. Now I
need, when a workbook in ListBox1 is clicked it adds all worksheets in
listbox2. Below is the following code I've tried and does not work:


'==== This adds the workbook names to listbox1
Private Sub UserForm_Initialize()
Dim wb As Workbook
With ListBox1
For Each wb In Workbooks
.AddItem (wb.Name)
Next wb
.ListIndex = 1
End With
End Sub
'<<====


'==== This does not add worksheets to listbox2 when workbook is
clicked in listbox1
'Tried Code1 also with the Change_event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
With ListBox2
For Each wks In ActiveWorkbook.Worksheets
.AddItem (wks.Name)
Next
End With
End Sub


'Tried Code2 also with the Change_Event:
Private Sub ListBox1_Click()
Dim wks As Worksheet
ListBox2.AddItem(wks.Name) = ListBox1.Value
End Sub


Thank you for your help,
jfcby- Hide quoted text -


- Show quoted text -


Hello NickHK,

The code works great!

Thank you for your help,
jfcby



All times are GMT +1. The time now is 06:40 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com