ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Changing path for import file (https://www.excelbanter.com/excel-programming/393771-changing-path-import-file.html)

Greg

Changing path for import file
 
My macro imports a couple of csv files that are always located in the
c:\users\username\documents\data folder, with username being the user whose
computer the spreadsheet is being used on. Unfortunately for me, whenever I
make a change to the macro, I have to create a separate copy for each
individual so that the file path to the csv file that's being imported is
correct. The portion of the code that refers to the file reads:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\username\Documents\Data\Import. csv" _
, Destination:=Range("A3"))
.Name = "Import"

Is there a way to code this so I don't have to change the path for each user?

Thanks for any help.

Gary Keramidas

Changing path for import file
 
see if this helps:

dim fPath as string
fPath = "c:\users\" & Environ("username") & "Documents\Data\"

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fPath & "Import.csv" _
, Destination:=Range("A3"))
.Name = "Import"


--


Gary


"Greg" wrote in message
...
My macro imports a couple of csv files that are always located in the
c:\users\username\documents\data folder, with username being the user whose
computer the spreadsheet is being used on. Unfortunately for me, whenever I
make a change to the macro, I have to create a separate copy for each
individual so that the file path to the csv file that's being imported is
correct. The portion of the code that refers to the file reads:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\username\Documents\Data\Import. csv" _
, Destination:=Range("A3"))
.Name = "Import"

Is there a way to code this so I don't have to change the path for each user?

Thanks for any help.




Gary Keramidas

Changing path for import file
 
sorry, missed a backslash

fpath = "c:\users\" & Environ("username") & "\Documents\Data\"

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fpath & "Import.csv" _
, Destination:=Range("A3"))
.Name = "Import"


--


Gary


"Greg" wrote in message
...
My macro imports a couple of csv files that are always located in the
c:\users\username\documents\data folder, with username being the user whose
computer the spreadsheet is being used on. Unfortunately for me, whenever I
make a change to the macro, I have to create a separate copy for each
individual so that the file path to the csv file that's being imported is
correct. The portion of the code that refers to the file reads:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\username\Documents\Data\Import. csv" _
, Destination:=Range("A3"))
.Name = "Import"

Is there a way to code this so I don't have to change the path for each user?

Thanks for any help.




Greg

Changing path for import file
 
That works great. Thanks.

One other complication. There may also be some users running Windows XP. In
this case, the file would be located at

C:\Documents and Settings\username\Documents\Data\Import.csv

Is there a way to code it so it can be used on both Windows XP & Vista
machines?

Thanks!

"Gary Keramidas" wrote:

sorry, missed a backslash

fpath = "c:\users\" & Environ("username") & "\Documents\Data\"

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fpath & "Import.csv" _
, Destination:=Range("A3"))
.Name = "Import"


--


Gary


"Greg" wrote in message
...
My macro imports a couple of csv files that are always located in the
c:\users\username\documents\data folder, with username being the user whose
computer the spreadsheet is being used on. Unfortunately for me, whenever I
make a change to the macro, I have to create a separate copy for each
individual so that the file path to the csv file that's being imported is
correct. The portion of the code that refers to the file reads:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\username\Documents\Data\Import. csv" _
, Destination:=Range("A3"))
.Name = "Import"

Is there a way to code this so I don't have to change the path for each user?

Thanks for any help.





Gary Keramidas

Changing path for import file
 
maybe this will work, or maybe someone has a vbscript.

Sub test()
If UCase(Split(Environ("homepath"), "\")(1)) = "USERS" Then
MsgBox "vista"
ElseIf UCase(Split(Environ("homepath"), "\")(1)) = "DOCUMENTS AND
SETTINGS" Then
MsgBox "XP"
Else
MsgBox "some other os"
End If
End Sub

--


Gary


"Greg" wrote in message
...
That works great. Thanks.

One other complication. There may also be some users running Windows XP. In
this case, the file would be located at

C:\Documents and Settings\username\Documents\Data\Import.csv

Is there a way to code it so it can be used on both Windows XP & Vista
machines?

Thanks!

"Gary Keramidas" wrote:

sorry, missed a backslash

fpath = "c:\users\" & Environ("username") & "\Documents\Data\"

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fpath & "Import.csv" _
, Destination:=Range("A3"))
.Name = "Import"


--


Gary


"Greg" wrote in message
...
My macro imports a couple of csv files that are always located in the
c:\users\username\documents\data folder, with username being the user whose
computer the spreadsheet is being used on. Unfortunately for me, whenever I
make a change to the macro, I have to create a separate copy for each
individual so that the file path to the csv file that's being imported is
correct. The portion of the code that refers to the file reads:

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\username\Documents\Data\Import. csv" _
, Destination:=Range("A3"))
.Name = "Import"

Is there a way to code this so I don't have to change the path for each
user?

Thanks for any help.








All times are GMT +1. The time now is 11:19 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com