Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default modify macro to execute based on current path

I've been using the macro below, which works a great. However, I would like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

....but that didn't work (i.e., debugger says the path can not be found. Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default modify macro to execute based on current path

Declare myPath outside the procedure as a public variable and

Public myPath As String

Sub ProcessAllFiles()
MyPath = Thisworkbook.Path & "\Groups\"

'your code
End Sub


If this post helps click Yes
---------------
Jacob Skaria


"intoit" wrote:

I've been using the macro below, which works a great. However, I would like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found. Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,533
Default modify macro to execute based on current path

Hi

First, as Path is already used in VBA as keyword, I wouldn't use it as
variable. It is better to use something like MyPath.

Second, if you add:

MsgBox paht

after the variable has been assigned, you will see, that the path string is
missing a backslash!

MyPath=MyPath & "\Groups\"

Hopes this helps.
....
Per

"intoit" skrev i meddelelsen
...
I've been using the macro below, which works a great. However, I would
like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the
called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found.
Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default modify macro to execute based on current path

It would be worth to take a look at the below link on lifetime & scope of
declared variables.

http://www.ozgrid.com/VBA/variable-scope-lifetime.htm

If this post helps click Yes
---------------
Jacob Skaria


"Jacob Skaria" wrote:

Declare myPath outside the procedure as a public variable and

Public myPath As String

Sub ProcessAllFiles()
MyPath = Thisworkbook.Path & "\Groups\"

'your code
End Sub


If this post helps click Yes
---------------
Jacob Skaria


"intoit" wrote:

I've been using the macro below, which works a great. However, I would like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found. Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default modify macro to execute based on current path

Thanks for the responses. It seems that the adjustments to the code find the
workbooks that are within the same folder as the activeworkbook (folder named
'Test_Split_Long'), rather than going the extra 'step' of finding the files
within the folder named 'groups' The message box reads
F:\VBA\Test_Split_Long\Groups\

Any ideas? Thanks.


Public myPath2 As String

Sub ProcessAllFiles()

Dim sFile$
'Dim myPath2 As String
'MyPath2 = Application.ThisWorkbook.path
'Const path = "C:\Groups\"
'MyPath2 = MyPath2 & "\Groups\"

myPath = ThisWorkbook.path & "\Groups\"
MsgBox myPath

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

"Per Jessen" wrote:

Hi

First, as Path is already used in VBA as keyword, I wouldn't use it as
variable. It is better to use something like MyPath.

Second, if you add:

MsgBox paht

after the variable has been assigned, you will see, that the path string is
missing a backslash!

MyPath=MyPath & "\Groups\"

Hopes this helps.
....
Per

"intoit" skrev i meddelelsen
...
I've been using the macro below, which works a great. However, I would
like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the
called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found.
Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub





  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 15
Default modify macro to execute based on current path

Ah, I neglected to change the 'path' statements throught the macro to
'myPath'. It works, now, although, strangely, once it runs through all of the
files within the 'Groups' folder once, it tries go through a second time
(which it didn't do when the macro specified the path directly.

Public myPath2 As String
Sub ProcessAllFiles()

Dim sFile$

myPath = ThisWorkbook.path & "\Groups\"
'MsgBox myPath

sFile = Dir(myPath & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (myPath & sFile)
'run your macro here
Call gema_fit_calculations_groups
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

"intoit" wrote:

Thanks for the responses. It seems that the adjustments to the code find the
workbooks that are within the same folder as the activeworkbook (folder named
'Test_Split_Long'), rather than going the extra 'step' of finding the files
within the folder named 'groups' The message box reads
F:\VBA\Test_Split_Long\Groups\

Any ideas? Thanks.


Public myPath2 As String

Sub ProcessAllFiles()

Dim sFile$
'Dim myPath2 As String
'MyPath2 = Application.ThisWorkbook.path
'Const path = "C:\Groups\"
'MyPath2 = MyPath2 & "\Groups\"

myPath = ThisWorkbook.path & "\Groups\"
MsgBox myPath

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

"Per Jessen" wrote:

Hi

First, as Path is already used in VBA as keyword, I wouldn't use it as
variable. It is better to use something like MyPath.

Second, if you add:

MsgBox paht

after the variable has been assigned, you will see, that the path string is
missing a backslash!

MyPath=MyPath & "\Groups\"

Hopes this helps.
....
Per

"intoit" skrev i meddelelsen
...
I've been using the macro below, which works a great. However, I would
like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the
called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found.
Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub



  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 8,520
Default modify macro to execute based on current path

The public variable declared is myPath2 (have you noticed this..) That should
be myPath to acess the variable from other modules...

If this post helps click Yes
---------------
Jacob Skaria


"intoit" wrote:

Ah, I neglected to change the 'path' statements throught the macro to
'myPath'. It works, now, although, strangely, once it runs through all of the
files within the 'Groups' folder once, it tries go through a second time
(which it didn't do when the macro specified the path directly.

Public myPath2 As String
Sub ProcessAllFiles()

Dim sFile$

myPath = ThisWorkbook.path & "\Groups\"
'MsgBox myPath

sFile = Dir(myPath & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (myPath & sFile)
'run your macro here
Call gema_fit_calculations_groups
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

"intoit" wrote:

Thanks for the responses. It seems that the adjustments to the code find the
workbooks that are within the same folder as the activeworkbook (folder named
'Test_Split_Long'), rather than going the extra 'step' of finding the files
within the folder named 'groups' The message box reads
F:\VBA\Test_Split_Long\Groups\

Any ideas? Thanks.


Public myPath2 As String

Sub ProcessAllFiles()

Dim sFile$
'Dim myPath2 As String
'MyPath2 = Application.ThisWorkbook.path
'Const path = "C:\Groups\"
'MyPath2 = MyPath2 & "\Groups\"

myPath = ThisWorkbook.path & "\Groups\"
MsgBox myPath

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub

"Per Jessen" wrote:

Hi

First, as Path is already used in VBA as keyword, I wouldn't use it as
variable. It is better to use something like MyPath.

Second, if you add:

MsgBox paht

after the variable has been assigned, you will see, that the path string is
missing a backslash!

MyPath=MyPath & "\Groups\"

Hopes this helps.
....
Per

"intoit" skrev i meddelelsen
...
I've been using the macro below, which works a great. However, I would
like
to modify the macro such that the directory path does not have to be
specified. That is, instead, the macro would identify the path of the
orginally opened workbook (from which the macro is executed) and then look
within that path for the folder named 'Groups', and then execture the
called
macro on all of the workbooks within the Groups folder.

I thought it would be as simple as adding:

Dim MyPath As String
MyPath = Application.ThisWorkbook.path

and

Const path = MyPath & ("Groups") & "\"

...but that didn't work (i.e., debugger says the path can not be found.
Any
advice greatly appreciated.


Sub ProcessAllFiles()

Dim sFile$

Const path = "C:\Groups\"

sFile = Dir(path & "*.xls")
Do While sFile < ""
'the new workbook will become active
Workbooks.Open (path & sFile)
'run your macro here
Call gema_fit_calculations_groups
'however make sure that the new workbook
'remains active throughout the macro
'Macro1
ActiveWorkbook.Close savechanges:=True
sFile = Dir
Loop

End Sub


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
How to execute macro based on a users computer settings Daddy Mac will make ya JUMP JUMP Excel Programming 3 May 9th 08 04:31 PM
Execute Macros from Other workbooks on current workbook Allen[_13_] Excel Programming 1 July 6th 06 02:08 AM
How do I execute a macro based on the value of a cell in Excel? brettopp Excel Discussion (Misc queries) 12 June 17th 06 01:27 AM
How can I get a macro to execute in excel based on the value of a. Ian P[_2_] Excel Programming 2 April 19th 05 09:50 PM
Current path to Qualified Path Mary Excel Programming 1 October 14th 04 02:42 PM


All times are GMT +1. The time now is 03:58 PM.

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

About Us

"It's about Microsoft Excel"