 
			
				05/07/2011, 03:47
			
			
			     |  
      |    |    |    Fecha de Ingreso: julio-2011  
						Mensajes: 5
					  Antigüedad: 14 años, 3 meses Puntos: 0     |        |  
  |      Rutina para listar ficheros        Buenos días:   
Escribo para ver si alguien puede ayudarme con un pequeño problema que me ha surgido en relación con el listado de unos ficheros en excel, a través del Visual Basic.    
Para situaros, debo hacer que a partir de una macro, pueda listar todos los ficheros contenidos de las diferentes carpetas que conforman un directorio. Creía haberlo conseguido, pero me ha surgido un pequeño/gran inconveniente, y es que cuando el programa detecta una carpeta vacía, se detiene y sale. Lo que pretendo conseguir es que genere un nuevo excel donde me liste todos los ficheros, y si la carpeta está vacía, que la salte y continue listando el resto de archivos del rango de direcciones que le doy.    
El cuerpo básico del programa que cree es el siguiente:        Dim strFolder As String 
    Dim varFileList As Variant 
    Dim FSO As Object, myFile As Object 
    Dim myResults As Variant 
    Dim l As Long 
    strFolder = Workbooks(Libro_Origen).Sheets(Hoja_Activa).Range(  "A" & Bucle) 
    ' Get a list of all the files in this directory. 
    ' Note that this isn't recursive... although it could be... 
    varFileList = fcnGetFileList(strFolder)      If Not IsArray(varFileList) Then 
    MsgBox "No files found.", vbInformation 
    Exit Sub 
    End If      
' Now let's get all the details for these files and place them into an array so it's quick to dump to XL. 
    ReDim myResults(0 To UBound(varFileList) + 1, 0 To 5)   
    ' place make some headers in the array 
    myResults(0, 0) = "Filename" 
    myResults(0, 1) = "Size" 
    myResults(0, 2) = "Created" 
    myResults(0, 3) = "Modified" 
    myResults(0, 4) = "Accessed" 
    myResults(0, 5) = "Full path"   
    Set FSO = CreateObject("Scripting.FileSystemObject")   
    ' Loop through our files 
    For l = 0 To UBound(varFileList) 
        Set myFile = FSO.GetFile(CStr(strFolder & "\" & varFileList(l))) 
        myResults(l + 1, 0) = CStr(varFileList(l)) 
        myResults(l + 1, 1) = myFile.Size 
        myResults(l + 1, 2) = myFile.DateCreated 
        myResults(l + 1, 3) = myFile.DateLastModified 
        myResults(l + 1, 4) = myFile.DateLastAccessed 
        myResults(l + 1, 5) = myFile.Path 
    Next l   
    ' Dump these to a worksheet 
    Application.ScreenUpdating = True 
    fcnDumpToWorksheet myResults   
El problema creo que está en la definición que hago en rojo. Llevo dandole vueltas unos cuantos días, y no consigo avanzar. Agradezco cualquier tipo de ayuda.   
Muchas gracias.   
Un saludo.           |