ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Populate a list box with all active workbooks except the current one. (https://www.excelbanter.com/excel-programming/418012-populate-list-box-all-active-workbooks-except-current-one.html)

travis[_3_]

Populate a list box with all active workbooks except the current one.
 
Hi,

I'm not sure how to go about this one...

I want a listbox control in a userform launched from
spreadsheetone.xls to display the names of all the other
spreadsheets. i.e. the user can select any workbook in the open
workbooks collection, but spreadsheetone.xls won't be in that list
(because the form is part of an exporting routine to copy charts and
tables from spreadsheetone.xls to a new worksheet in whichever open
workbook the user selects).

How do I put the names of all open workbooks into a listbox?

Travis

Gary Keramidas

Populate a list box with all active workbooks except the current one.
 
this is for listbox1 on a userform:

Private Sub UserForm_Activate()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name < ActiveSheet.Name Then
Me.ListBox1.AddItem ws.Name
End If
Next
End Sub

--


Gary

"travis" wrote in message
...
Hi,

I'm not sure how to go about this one...

I want a listbox control in a userform launched from
spreadsheetone.xls to display the names of all the other
spreadsheets. i.e. the user can select any workbook in the open
workbooks collection, but spreadsheetone.xls won't be in that list
(because the form is part of an exporting routine to copy charts and
tables from spreadsheetone.xls to a new worksheet in whichever open
workbook the user selects).

How do I put the names of all open workbooks into a listbox?

Travis




Jim Thomlinson

Populate a list box with all active workbooks except the current o
 
How about something like this. When the userform is activated it populates
the list box...

Private Sub UserForm_Activate()
Dim wbk As Workbook

ListBox1.Clear 'Change the list box name as necessary
For Each wbk In Workbooks
If wbk.Name < ThisWorkbook.Name Then _
ListBox1.AddItem wbk.Name
Next wbk
End Sub
--
HTH...

Jim Thomlinson


"travis" wrote:

Hi,

I'm not sure how to go about this one...

I want a listbox control in a userform launched from
spreadsheetone.xls to display the names of all the other
spreadsheets. i.e. the user can select any workbook in the open
workbooks collection, but spreadsheetone.xls won't be in that list
(because the form is part of an exporting routine to copy charts and
tables from spreadsheetone.xls to a new worksheet in whichever open
workbook the user selects).

How do I put the names of all open workbooks into a listbox?

Travis


Jim Thomlinson

Populate a list box with all active workbooks except the curre
 
I was under the impression that Travis wanted the workbooks and not the
worksheets...
--
HTH...

Jim Thomlinson


"Gary Keramidas" wrote:

this is for listbox1 on a userform:

Private Sub UserForm_Activate()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name < ActiveSheet.Name Then
Me.ListBox1.AddItem ws.Name
End If
Next
End Sub

--


Gary

"travis" wrote in message
...
Hi,

I'm not sure how to go about this one...

I want a listbox control in a userform launched from
spreadsheetone.xls to display the names of all the other
spreadsheets. i.e. the user can select any workbook in the open
workbooks collection, but spreadsheetone.xls won't be in that list
(because the form is part of an exporting routine to copy charts and
tables from spreadsheetone.xls to a new worksheet in whichever open
workbook the user selects).

How do I put the names of all open workbooks into a listbox?

Travis





Gary Keramidas

Populate a list box with all active workbooks except the curre
 
you're probably right, my mistake.

--


Gary

"Jim Thomlinson" wrote in message
...
I was under the impression that Travis wanted the workbooks and not the
worksheets...
--
HTH...

Jim Thomlinson


"Gary Keramidas" wrote:

this is for listbox1 on a userform:

Private Sub UserForm_Activate()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name < ActiveSheet.Name Then
Me.ListBox1.AddItem ws.Name
End If
Next
End Sub

--


Gary

"travis" wrote in message
...
Hi,

I'm not sure how to go about this one...

I want a listbox control in a userform launched from
spreadsheetone.xls to display the names of all the other
spreadsheets. i.e. the user can select any workbook in the open
workbooks collection, but spreadsheetone.xls won't be in that list
(because the form is part of an exporting routine to copy charts and
tables from spreadsheetone.xls to a new worksheet in whichever open
workbook the user selects).

How do I put the names of all open workbooks into a listbox?

Travis







travis[_3_]

Populate a list box with all active workbooks except the currentone.
 
Thanks for your answers Jim and Gary. Just what I was needing.

Travis

travis[_3_]

Populate a list box with all active workbooks except the currentone.
 
On Oct 3, 4:09*am, "Gary Keramidas" <GKeramidasAtMsn.com wrote:
this is for listbox1 on a userform:

Private Sub UserForm_Activate()
* * * Dim ws As Worksheet
* * * For Each ws In ThisWorkbook.Worksheets
* * * * * * If ws.Name < ActiveSheet.Name Then
* * * * * * * * * Me.ListBox1.AddItem ws.Name
* * * * * * End If
* * * Next
End Sub

--

Gary


Gary, your contribution was useful to me because shortly after needing
to populate a listbox with all the open workbooks I needed to populate
a listbox with all the sheets in a specified workbook.

But, how would I modify the above code to get the worksheets from a
different workbook other than ThisWorkbook?

I have a public variable called "projectionbook" which contains the
name of a newly initiated workbook which I intend to write to. It
contains a value like "book8".

I got the result I wanted by using the following code:

Windows(projectionbook).Activate
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next

But why doesn't something like the following work? How should I use
the projectionbook variable in a more direct way instead of activating
it then calling it as the activeworkbook?

Dim ws As Worksheet
For Each ws In projectionbook.Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next

Travis

Gary Keramidas[_2_]

Populate a list box with all active workbooks except the current one.
 
it depends on how you declare the variable projectionbook:

as a string:

Private Sub UserForm_Activate2()
Dim ws As Worksheet
Dim projectionbook As String
projectionbook = Workbooks("yourworkbook.xls").Name 'change the name

For Each ws In Workbooks(projectionbook).Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next
End Sub

as a workbook:

Private Sub UserForm_Activate()

Dim ws As Worksheet
Dim projectionbook As Workbook
Set projectionbook = Workbooks("yourworkbook.xls") 'change the name

For Each ws In projectionbook.Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next
End Sub

--

Gary
Excel 2003


"travis" wrote in message
...
On Oct 3, 4:09 am, "Gary Keramidas" <GKeramidasAtMsn.com wrote:
this is for listbox1 on a userform:

Private Sub UserForm_Activate()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name < ActiveSheet.Name Then
Me.ListBox1.AddItem ws.Name
End If
Next
End Sub

--

Gary


Gary, your contribution was useful to me because shortly after needing
to populate a listbox with all the open workbooks I needed to populate
a listbox with all the sheets in a specified workbook.

But, how would I modify the above code to get the worksheets from a
different workbook other than ThisWorkbook?

I have a public variable called "projectionbook" which contains the
name of a newly initiated workbook which I intend to write to. It
contains a value like "book8".

I got the result I wanted by using the following code:

Windows(projectionbook).Activate
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next

But why doesn't something like the following work? How should I use
the projectionbook variable in a more direct way instead of activating
it then calling it as the activeworkbook?

Dim ws As Worksheet
For Each ws In projectionbook.Worksheets
Me.lstSheetsInProjection.AddItem ws.Name
Next

Travis



All times are GMT +1. The time now is 05:31 PM.

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