Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 921
Default Choose particular files from a directory

Hello,

Per the below, I'm trying to manipulate certain files within a directory.
As you can see in the last line, I am unsuccessfully trying to choose all
files in the directory entitled "Region***", as well as two specific files
("ABC.xls", "DEF.xls"). It works with just the Region, but not sure how to
get the syntax right to get the last two as well.....


TIA!




Dim basebook As Workbook
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim rnum As Long
Dim SourceRcount As Long
Dim FNames As String
Dim MyPath As String
Dim SaveDriveDir As String

SaveDriveDir = CurDir

MyPath = "Y:\Sales\2005"
ChDrive MyPath
ChDir MyPath

FNames = Array(Dir("REGION***.xls"), "ABC.xls", "DEF.xls")


  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,588
Default Choose particular files from a directory

Sub ProcessFiles()

dim sPath

sPath=Dir("Y:\Sales\2005\REGION***.xls")

do while sPath<""
ProcessFile sPath
sPath=Dir()
loop

'process the other two files
ProcessFile "Y:\Sales\2005\ABC.xls"
ProcessFile "Y:\Sales\2005\DEF.xls"

end sub


Sub ProcessFile(sPath as string)
'process workbook code goes here
end sub


Tim.


--
Tim Williams
Palo Alto, CA


"JEFF" wrote in message
...
Hello,

Per the below, I'm trying to manipulate certain files within a directory.
As you can see in the last line, I am unsuccessfully trying to choose all
files in the directory entitled "Region***", as well as two specific files
("ABC.xls", "DEF.xls"). It works with just the Region, but not sure how

to
get the syntax right to get the last two as well.....


TIA!




Dim basebook As Workbook
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim rnum As Long
Dim SourceRcount As Long
Dim FNames As String
Dim MyPath As String
Dim SaveDriveDir As String

SaveDriveDir = CurDir

MyPath = "Y:\Sales\2005"
ChDrive MyPath
ChDir MyPath

FNames = Array(Dir("REGION***.xls"), "ABC.xls", "DEF.xls")




  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 158
Default Choose particular files from a directory

Hi Jeff,

You're doing a few things wrong in your code:

(1) Fnames should be a variant - this is required by the Array function.
(See VBA help.)

(2) Just doing Dir("REGION***.xls") will only ever return one file, you
need all the files correct? SO you have to do a loop to get them all.

(3) No need to do ***, just one * will suffice. Or do you mean you just
want files with 3 characters after region - in which case you shoudl be
using "region???.xls".

I've just written this and noticed Tim has posted a much simpler
solution - however, you may find my corrections to your code so I'll
post anyway. Below I've included code that may help you elsewhere.

HTH,
Gareth

Sub DOThings()

Dim Fnames As Variant
Dim i as integer
COnst myPath as string = "Y:\Sales\2005"

Fnames = fcnGetFileList(myPath, "Region*.xls")

'Either add the remaining files to your array
'or process them separately.

For i = 0 To UBound(v)
Debug.Print myPath & "\" & Fnames(i)
Next i


End Sub

Function fcnGetFileList(ByVal strPath As String, Optional strFilter As
String) As Variant
' Returns a one dimensional array with just one empty blank element if
no files found
' Otherwise returns list of files

Dim myFile As String
Dim i As Integer
Dim FileList() As String

If strFilter = "" Then strFilter = "*.*"

'check in case we were already passed a \ or /
Select Case Right$(strPath, 1)
Case "\", "/"
strPath = Left$(strPath, Len(strPath) - 1)
End Select

ReDim Preserve FileList(0)

myFile = Dir$(strPath & "\" & strFilter)
Do While Len(myFile) 0
ReDim Preserve FileList(i) As String
FileList(i) = myFile
i = i + 1
myFile = Dir$()
Loop

fcnGetFileList = FileList

End Function


JEFF wrote:
Hello,

Per the below, I'm trying to manipulate certain files within a directory.
As you can see in the last line, I am unsuccessfully trying to choose all
files in the directory entitled "Region***", as well as two specific files
("ABC.xls", "DEF.xls"). It works with just the Region, but not sure how to
get the syntax right to get the last two as well.....


TIA!




Dim basebook As Workbook
Dim mybook As Workbook
Dim sourceRange As Range
Dim destrange As Range
Dim rnum As Long
Dim SourceRcount As Long
Dim FNames As String
Dim MyPath As String
Dim SaveDriveDir As String

SaveDriveDir = CurDir

MyPath = "Y:\Sales\2005"
ChDrive MyPath
ChDir MyPath

FNames = Array(Dir("REGION***.xls"), "ABC.xls", "DEF.xls")


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
List of Files in A Directory JaneC Excel Discussion (Misc queries) 2 February 18th 06 12:11 PM
Files in a directory? Greg B Excel Discussion (Misc queries) 5 May 11th 05 09:46 PM
Load all files in a directory Greg B... Excel Discussion (Misc queries) 2 March 2nd 05 12:22 PM
Check if directory empty OR no of files in directory. Michael Beckinsale Excel Programming 2 December 4th 03 10:12 PM
Open all files in a directory Tom Waters[_2_] Excel Programming 1 September 3rd 03 12:59 PM


All times are GMT +1. The time now is 11:01 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"