title: Using VBA FileSystemObject, specific file File extension
body: <p>I'm using the following code to list all files with xls,xlsx or xlsm extension from folder and its subfolder.  The following code works but the problem is, it lists all files with all extensions from subfolders but lists only excel files from main folder.  I can not figure out whats wrong with this code.  Could you please help me?</p>
  
  <pre><code>Sub List_XL_Files(ByVal SheetName As String, ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
  
  Dim FSO As Object
  Dim SourceFolder As Object
  Dim SubFolder As Object
  Dim FileItem As Object
  Dim lRoMa As Long
  
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set SourceFolder = FSO.GetFolder(SourceFolderName)
  
  lRoMa = ThisWorkbook.Sheets(SheetName).Cells(Rows.Count, 2).End(xlUp).Row + 1
  ReDim arrFolders(ctr)
  
  With ThisWorkbook.Sheets(SheetName)
      For Each FileItem In SourceFolder.Files
             strFileExt = FSO.GetExtensionName(FileItem)
             If strFileExt = "xlsm" Or strFileExt = "xlsx" Or strFileExt = "xls" Then
                  MsgBox strFileExt
                  .Cells(lRoMa + r, 1).Value = lRoMa + r - 7
                  .Cells(lRoMa + r, 2).Formula = strFileExt
                  .Cells(lRoMa + r, 3).Formula = FileItem.Name
                  .Cells(lRoMa + r, 4).Formula = FileItem.Path
                  .Cells(lRoMa + r, 5).Value = "-"
                  .Cells(lRoMa + r, 6).Value = ""
                  .Cells(lRoMa + r, 7).Value = ""
                   r = r + 1                                      ' next row number
                   X = SourceFolder.Path
             End If
      Next FileItem
  End With
  
  If IncludeSubfolders Then
      For Each SubFolder In SourceFolder.SubFolders
          ListFilesInFolder SheetName, SubFolder.Path, True
      Next SubFolder
  End If
  
  Set FileItem = Nothing
  Set SourceFolder = Nothing
  Set FSO = Nothing
  
  End sub
  </code></pre>
  
  <p>Thanks</p>