Results 1 to 3 of 3

Macro to create hyperlink list of every file in a folder, subfolders

Threaded View

  1. #1
    Registered User
    Join Date
    12-24-2010
    Location
    WV
    MS-Off Ver
    Excel 2003
    Posts
    8

    Macro to create hyperlink list of every file in a folder, subfolders

    Hi,
    I found the below code in another post by Billdick7788. This code will list all the files in a folder and create hyperlinks. However I need it to list all the subfolders and files within each of the subfolders as well. If anyone one could modify it to do that, it would be greatly appreciated.

    Thanks

    Option Compare Text
    Option Explicit
    
    Function Excludes(Ext As String) As Boolean
    'Function purpose: To exclude listed file extensions from hyperlink listing
    
    Dim X, NumPos As Long
    
    'Enter/adjust file extensions to EXCLUDE from listing here:
    X = Array("exe", "bat", "dll", "zip")
    
    On Error Resume Next
    NumPos = Application.WorksheetFunction.Match(Ext, X, 0)
    If NumPos > 0 Then Excludes = True
    On Error GoTo 0
    
    End Function
    
    Sub HyperlinkFileList()
    'Macro purpose: To create a hyperlinked list of all files in a user
    'specified directory, including file size and date last modified
    'NOTE: The 'TextToDisplay' property (of the Hyperlink object) was added
    'in Excel 2000. This code tests the Excel version and does not use the
    'Texttodisplay property if using XL 97.
    
    Dim fso As Object, _
    ShellApp As Object, _
    File As Object, _
    SubFolder As Object, _
    Directory As String, _
    Problem As Boolean, _
    ExcelVer As Integer
    
    'Turn off screen flashing
    Application.ScreenUpdating = False
    
    'Create objects to get a listing of all files in the directory
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Prompt user to select a directory
    Do
    Problem = False
    Set ShellApp = CreateObject("Shell.Application"). _
    Browseforfolder(0, "Please choose a folder", 0, "c:\\")
    
    On Error Resume Next
    'Evaluate if directory is valid
    Directory = ShellApp.self.Path
    Set SubFolder = fso.GetFolder(Directory).Files
    If Err.Number <> 0 Then
    If MsgBox("You did not choose a valid directory!" & vbCrLf & _
    "Would you like to try again?", vbYesNoCancel, _
    "Directory Required") <> vbYes Then Exit Sub
    Problem = True
    End If
    On Error GoTo 0
    Loop Until Problem = False
    
    'Set up the headers on the worksheet
    With ActiveSheet
    With .Range("A1")
    .Value = "Listing of all files in:"
    .ColumnWidth = 40
    'If Excel 2000 or greater, add hyperlink with file name
    'displayed. If earlier, add hyperlink with full path displayed
    If Val(Application.Version) > 8 Then 'Using XL2000+
    .Parent.Hyperlinks.Add _
    Anchor:=.Offset(0, 1), _
    Address:=Directory, _
    TextToDisplay:=Directory
    Else 'Using XL97
    .Parent.Hyperlinks.Add _
    Anchor:=.Offset(0, 1), _
    Address:=Directory
    End If
    End With
    With .Range("A2")
    .Value = "File Name"
    .Interior.ColorIndex = 15
    With .Offset(0, 1)
    .ColumnWidth = 15
    .Value = "Date Modified"
    .Interior.ColorIndex = 15
    .HorizontalAlignment = xlCenter
    End With
    With .Offset(0, 2)
    .ColumnWidth = 15
    .Value = "File Size (Kb)"
    .Interior.ColorIndex = 15
    .HorizontalAlignment = xlCenter
    End With
    End With
    End With
    
    'Adds each file, details and hyperlinks to the list
    For Each File In SubFolder
    If Not Excludes(Right(File.Path, 3)) = True Then
    With ActiveSheet
    'If Excel 2000 or greater, add hyperlink with file name
    'displayed. If earlier, add hyperlink with full path displayed
    If Val(Application.Version) > 8 Then 'Using XL2000+
    .Hyperlinks.Add _
    Anchor:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0), _
    Address:=File.Path, _
    TextToDisplay:=File.Name
    Else 'Using XL97
    .Hyperlinks.Add _
    Anchor:=ActiveSheet.Range("A65536").End(xlUp).Offset(1, 0), _
    Address:=File.Path
    End If
    'Add date last modified, and size in KB
    With .Range("A65536").End(xlUp)
    .Offset(0, 1) = File.datelastModified
    With .Offset(0, 2)
    .Value = WorksheetFunction.Round(File.Size / 1024, 1)
    .NumberFormat = "#,##0.0"
    End With
    End With
    End With
    End If
    Next
    
    End Sub
    Moderator Note:

    Pls use code tags around your code next time as per forum rules.
    Last edited by Fotis1991; 09-20-2013 at 11:29 AM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [SOLVED] list of subfolders in folder - without files and sub-subfolders
    By MartyZ in forum Excel Programming / VBA / Macros
    Replies: 4
    Last Post: 06-11-2022, 10:56 AM
  2. Macro to create hyperlink list of every file in a folder, subfolders, and SHORTCUTS
    By Billdick7788 in forum Excel Programming / VBA / Macros
    Replies: 2
    Last Post: 09-20-2013, 11:11 AM
  3. Adapt macro to create list of all PDF files in folder, including subfolders.
    By Glensafro in forum Excel Programming / VBA / Macros
    Replies: 5
    Last Post: 08-23-2013, 06:33 AM
  4. Macro to open file if found in a folder or any subfolders
    By beze12 in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 11-16-2012, 02:27 AM
  5. Macro to search folder including subfolders for file and open
    By kiraexiled in forum Excel Programming / VBA / Macros
    Replies: 1
    Last Post: 09-01-2012, 02:45 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1