Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Excel / Programming / January 2007

Tip: Looking for answers? Try searching our database.

Using one Input Box Method For Two Separate Macros

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
tdboutte@yahoo.com - 29 Jan 2007 23:30 GMT
Greetings,

I currently have one Excel workbook with two separate, but similar
macros, outputting data to two separate ,but similar, worksheets based
on a date the user enters in the input box triggered by each
procedure.

I am attempting to stream line this process: one input box to capture
a date, execute the two macros, and output the results to a single
worksheet.

I created a new macro that clears the composite worksheet, evokes the
input box, and then runs the two original macros.

QUESTION:  How do I get the Input Box value to carry/store for use
with Macro X and Macro Y?  My Goal is to discontinue user interacting
with two separate dialog boxes which were associated with the original
macros.  I'd like one Input Box, capture the date, and use that date
entry in both Macro X and Macro Y.

Any help would be much appreciated!

Cheers,
tdb

Here is the rewritten macro (Currently, the macro runs, but I do not
get any output, so the date entered in input box is being dropped
somewhere)

'Clears the output ranges in the prod plan summary sheet
   Sheets("CombinedX&Y").Select
   Range("A7:A300").Select
   Selection.ClearContents
   Range("D7:R300").Select
   Selection.ClearContents

Dim BeginDate As Date

'InputBox to replace MS Excel 5 Dialog Box
    BeginDate = Application.InputBox(Prompt:="Enter Begin Date As mm/
dd/yy", _
    Title:="BEGIN DATE", Default:="", Type:=1)

'If user cancels the event autocalc turned on and ends macro
   If BeginDate = False Then
   MsgBox "Operation Cancelled"
   Exit Sub
   End If

'Format BeginDate input to resolve data type mismatch error
   BeginDate = Format(BeginDate, "Short Date")

''Run  Macro X
Application.Run "ExcelFile1.xls'!Module4.MacroX"

'Run Macro Y
Application.Run "ExcelFile1.xls'!Module1.MacroY"
End Sub
John Bundy - 29 Jan 2007 23:41 GMT
Try creating a global variable, such as Dim myAnswer as String above the
beginning SUB, there it can be used by all when a selection is made in the
input box set myAnswer = to the input and then you can use it anywhere
Signature

-John Northwest11
Please rate when your question is answered to help us and others know what
is helpful.

> Greetings,
>
[quoted text clipped - 54 lines]
> Application.Run "ExcelFile1.xls'!Module1.MacroY"
> End Sub
Jon Peltier - 30 Jan 2007 01:24 GMT
Rather than using a global variable, which can be changed at the whim of any
process that wants to wreak a little havoc, make the data an argument to the
other macros:

Sub MacroX(dtDate As Date)
   ' perform magic using dtDate
End Sub

Call it like this:

 Application.Run "ExcelFile1.xls'!Module4.MacroX", BeginDate

- Jon
-------
Jon Peltier, Microsoft Excel MVP
Tutorials and Custom Solutions
http://PeltierTech.com
_______

> Greetings,
>
[quoted text clipped - 54 lines]
> Application.Run "ExcelFile1.xls'!Module1.MacroY"
> End Sub
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.