Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 184
Default List sheet names in "pop-up" box for users to select

Hello All. I have a bit of code below (compliments of Garry S) that
takes rows that meet a certain criteria and chunks them to a different
worksheet. In this code, the specvific "target" worksheet is
explicitly names in the code.

Is there a way to execute the code, have a "pop-up" box listing all
the current sheet names in the workbook, and allow the user choose
which worksheet to chunk the data to? So in the code below, the Set
wksTarget = Sheets("East") would be dynamic based on user input?

Thank you!


Dim wksSource As Worksheet, wksTarget As Worksheet

Set wksSource = ActiveSheet: Set wksTarget = Sheets("East")
Application.ScreenUpdating = False
With wksTarget
.Rows("1:" & CStr(.UsedRange.Rows.Count)).ClearContents
.Rows("1:" & CStr(.UsedRange.Rows.Count)).ClearComments
.Rows("1:" & CStr(.UsedRange.Rows.Count)).Interior.ColorIndex =
xlNone
End With
With wksSource
.Columns("K:K").AutoFilter Field:=1, Criteria1:="Y"
.UsedRange.Copy wksTarget.Rows("1:1")
.Columns("K:K").AutoFilter
End With
Application.ScreenUpdating = True
  #2   Report Post  
Posted to microsoft.public.excel.programming
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


Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Adding to a "list sheet names" macro ... [email protected] Excel Programming 2 June 4th 09 06:23 PM
Range("C100:D200").Select with variable names Fan924 Excel Programming 2 October 15th 07 03:54 PM
Questionnaire sheet: Select "yes" or "no," and only one can be selected bpatterson Excel Worksheet Functions 2 April 13th 06 11:04 PM
Stop users from accessing "Protection" option from "Tools" menu I Believe Excel Programming 2 December 19th 05 02:44 PM
Protect shouldn't default to "allow users to select locked cells" JudiMicro Setting up and Configuration of Excel 0 November 18th 05 05:00 PM


All times are GMT +1. The time now is 11:34 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"