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 / New Users / July 2006

Tip: Looking for answers? Try searching our database.

Reading File Names

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
OlYeller21 - 31 Jul 2006 16:22 GMT
Is there a way to have excel generate a list of file names in a
specified folder?  I have around 300 files in a folder and I would like
a list in excel but I don't want to type out every file name.  They're
power point presentaions if that makes a difference.  Thanks for any
help you can give.
Zach

Signature

OlYeller21

Jim Cone - 31 Jul 2006 16:34 GMT
Try the free Excel add-in "List Files" at...
http://www.realezsites.com/bus/primitivesoftware
No registration required
Signature

Jim Cone
San Francisco, USA

"OlYeller21"
wrote in message
Is there a way to have excel generate a list of file names in a
specified folder?  I have around 300 files in a folder and I would like
a list in excel but I don't want to type out every file name.  They're
power point presentaions if that makes a difference.  Thanks for any
help you can give.
Zach

Bob Phillips - 31 Jul 2006 17:43 GMT
Option Explicit

Private cnt As Long
Private arfiles
Private level As Long

Sub Folders()
Dim i As Long
Dim sFolder As String
Dim iStart As Long
Dim iEnd As Long
Dim fOutline As Boolean

   arfiles = Array()
   cnt = -1
   level = 1

   sFolder = "E:\"
   ReDim arfiles(2, 0)
   If sFolder <> "" Then
       SelectFiles sFolder
       Application.DisplayAlerts = False
       On Error Resume Next
       Worksheets("Files").Delete
       On Error GoTo 0
       Application.DisplayAlerts = True
       Worksheets.Add.Name = "Files"
       With ActiveSheet
           For i = LBound(arfiles, 2) To UBound(arfiles, 2)
               If arfiles(0, i) = "" Then
                   If fOutline Then
                       Rows(iStart + 1 & ":" & iEnd).Rows.Group
                   End If
                   With .Cells(i + 1, arfiles(2, i))
                       .Value = arfiles(1, i)
                       .Font.Bold = True
                   End With
                   iStart = i + 1
                   iEnd = iStart
                   fOutline = False
               Else
                   .Hyperlinks.Add Anchor:=.Cells(i + 1, arfiles(2, i)), _
                                   Address:=arfiles(0, i), _
                                   TextToDisplay:=arfiles(1, i)
                   iEnd = iEnd + 1
                   fOutline = True
               End If
           Next
           .Columns("A:Z").ColumnWidth = 5
       End With
   End If
   'just in case there is another set to group
   If fOutline Then
       Rows(iStart + 1 & ":" & iEnd).Rows.Group
   End If

   Columns("A:Z").ColumnWidth = 5
   ActiveSheet.Outline.ShowLevels RowLevels:=1
   ActiveWindow.DisplayGridlines = False

End Sub

'-----------------------------------------------------------------------
Sub SelectFiles(Optional sPath As String)
'-----------------------------------------------------------------------
Static FSO As Object
Dim oSubFolder As Object
Dim oFolder As Object
Dim oFile As Object
Dim oFiles As Object
Dim arPath

   If FSO Is Nothing Then
       Set FSO = CreateObject("Scripting.FileSystemObject")
   End If

   If sPath = "" Then
       sPath = CurDir
   End If

   arPath = Split(sPath, "\")
   cnt = cnt + 1
   ReDim Preserve arfiles(2, cnt)
   arfiles(0, cnt) = ""
   arfiles(1, cnt) = arPath(level - 1)
   arfiles(2, cnt) = level

   Set oFolder = FSO.GetFolder(sPath)
   Set oFiles = oFolder.Files
   For Each oFile In oFiles
       cnt = cnt + 1
       ReDim Preserve arfiles(2, cnt)
       arfiles(0, cnt) = oFolder.Path & "\" & oFile.Name
       arfiles(1, cnt) = oFile.Name
       arfiles(2, cnt) = level + 1
   Next oFile

   level = level + 1
   For Each oSubFolder In oFolder.Subfolders
       SelectFiles oSubFolder.Path
   Next
   level = level - 1

End Sub

#If VBA6 Then
#Else
'-----------------------------­­-----------------------------­-­------
Function Split(Text As String, _
       Optional Delimiter As String = ",") As Variant
'-----------------------------­­-----------------------------­-­------
Dim i As Long
Dim sFormula As String
Dim aryEval
Dim aryValues

   If Delimiter = vbNullChar Then
       Delimiter = Chr(7)
       Text = Replace(Text, vbNullChar, Delimiter)
   End If

   sFormula = "{""" & Application.Substitute(Text, Delimiter, """,""") &
"""}"
   aryEval = Evaluate(sFormula)
   ReDim aryValues(0 To UBound(aryEval) - 1)
   For i = 0 To UBound(aryValues)
           aryValues(i) = aryEval(i + 1)
   Next

   Split = aryValues

End Function

'---------------------------------------------------------------------------
Public Function InStrRev(stringcheck As String, _
                        ByVal stringmatch As String, _
                        Optional ByVal start As Long = -1)
'---------------------------------------------------------------------------
Dim iStart As Long
Dim iLen As Long
Dim i As Long

   If iStart = -1 Then
       iStart = Len(stringcheck)
   Else
       iStart = start
   End If

   iLen = Len(stringmatch)

   For i = iStart To 1 Step -1
       If Mid(stringcheck, i, iLen) = stringmatch Then
           InStrRev = i
           Exit Function
       End If
   Next i
   InStrRev = 0
End Function
'-----------------------------------------------------------------
#End If

Signature

HTH

Bob Phillips

(replace somewhere in email address with gmail if mailing direct)

> Is there a way to have excel generate a list of file names in a
> specified folder?  I have around 300 files in a folder and I would like
> a list in excel but I don't want to type out every file name.  They're
> power point presentaions if that makes a difference.  Thanks for any
> help you can give.
> Zach
OlYeller21 - 31 Jul 2006 22:00 GMT
Thanks for the help guys.
Zac

Rate this thread:






 
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.