View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
GS[_2_] GS[_2_] is offline
external usenet poster
 
Posts: 3,514
Default List sheet names in "pop-up" box for users to select

Steve,
This will require a userform containing a listbox that gets populated
with sheetnames in the userform's Initialize event. Clicking a name in
the list then puts the selection into a global variable and unloads the
form. Your code now uses the variable in place of the literal sheetname
string.

==========================================
Code to load the sheetnames into Listbox1:

Private Sub Userform1_Initialize()
Dim wks As Worksheet
For Each wks In ThisWorkbook.Sheets
If wks.Visible Then ListBox1.AddItem wks.Name
Next 'wks
Me.Caption = "Select Target"
End Sub

===========================================
Code to load the sheetname into global var:

Private Sub ListBox1_Click()
gsWksTargetName = ListBox1.List(ListBox1.ListIndex)
Unload Me
End Sub

**Make the listbox fill as much of the userform as needed to mimic a
scrollable popup list. width of both should be sufficient so as not to
cause the listbox to display its horizontal scrollbar. (This will
require the listbox to have margin around left, right, and bottom)

=====================================
Replace this existing line of code...
Set wksSource = ActiveSheet: Set wksTarget = Sheets("East")

with...
Userform1.Show '//get wksTarget sheetname
Set wksSource = ActiveSheet: Set wksTarget = Sheets(gsWksTargetName)

================================================== =
Put this in a standard module declarations section:

Public gsWksTargetName As String

HTH

--
Garry

Free usenet access at http://www.eternal-september.org
ClassicVB Users Regroup! comp.lang.basic.visual.misc