![]() |
![]() |
|
|||||||
| Excel Questions All Excel/VBA questions - formulas, macros, pivot tables, general help, etc. Please post to this forum in English only. |
![]() |
|
|
Thread Tools | Display Modes |
|
|
#1 |
|
New Member
Join Date: Feb 2002
Location: York, PA
Posts: 16
|
I have a spreadsheet with multiple control buttons used to execute several optional macro functions and sort routines. Instead of cluttering up the spreadsheet with a lot of buttons, is there a way to list all of optional macros in a List or Combo Box? The idea is to have one cell or button location with a pull down or pop-up list of macros, select the one you need, and it runs automatically.
|
|
|
|
|
|
#2 | |
|
MrExcel MVP
Join Date: Feb 2002
Location: Portland, OR USA
Posts: 1,374
|
Quote:
Sub Main() Application.Run Range("G4").Text End Sub (assuming that G4 is the cell with your drop-down). Make sense? If not, let me know. -Russell |
|
|
|
|
|
|
#3 |
|
MrExcel MVP
Join Date: Feb 2002
Location: Auckland, New Zealand
Posts: 4,209
|
'yes it is possible.....have a look @ code;
'Note: 'using combobox from Control toolbox = ActiveX object. 'Need to reference the VBA applications extensibility file 'in your project. '========================================================================================== '= = '= Module: Sheet1 = '= Type: Document Module = '= = '= Developer: Ivan F Moala = '= Date: 25-Oct-2000 = '= = '= Description: Requires reference to Microsoft VBA for applications extensibilty = '= = '= Subprocedures: ComboBox1_Click = '= : ComboBox1_DropButt******* = '= Functions : None = '= Properties : None = '= DLL Declares : None = '= = '========================================================================================== Private Sub ComboBox1_Click() Dim Q As Integer Q = MsgBox("Run " & ComboBox1.Text & " macro ??", vbYesNo) If Q = vbYes Then Application.Run ComboBox1.Text End Sub Private Sub ComboBox1_DropButt*******() Dim VBCodeMod As CodeModule Dim StartLine As Long Dim ProcName As String Dim VBComp ComboBox1.Clear For Each VBComp In ThisWorkbook.VBProject.VBComponents Set VBCodeMod = ThisWorkbook.VBProject.VBComponents(VBComp.Name).CodeModule If VBComp.Type = vbext_ct_StdModule Then With VBCodeMod StartLine = .CountOfDeclarationLines + 1 Do Until StartLine >= .CountOfLines ComboBox1.AddItem .ProcOfLine(StartLine, vbext_pk_Proc) StartLine = StartLine + .ProcCountLines(.ProcOfLine(StartLine, _ vbext_pk_Proc), vbext_pk_Proc) Loop End With End If Set VBCodeMod = Nothing Next VBComp End Sub HTH Ivan |
|
|
|
![]() |
| Bookmarks |
| Thread Tools | |
| Display Modes | |
|
|