Hola a todos me gustaria saber como puedo mejorar estos dos codigos , necesito crear un directorio en excel de todos mis archivos existentes en mi PC de excel, y que al frente me coloque el nombre del archivo y al frente el tamaño del mismo en bytes....la idea es abrir mediante hipervinculos el archivo que sea necesario, eso ya lo hago mediante formulas....tengo estos dos codigos no se como implementarlos....en lo que puedan ayudar seria genial...gracias...
este busca en subdirectorio y muestra en msgbox los archivos que se contiene de excel en dicha unidad pero la idea seria copiar la ruta en una hoja de excel y al frente de la ruta, el tamaño en bytes....
Sub buscararchivo()
Set fs = Application.FileSearch
With fs
.LookIn = "C:\Minidisk"
.SearchSubFolders = True
.Filename = "*.xls"
If .Execute() > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For I = 1 To .FoundFiles.Count
MsgBox .FoundFiles(I)
Next I
Else
MsgBox "There were no files found."
End If
End With
End Sub
y este busca todos los archivos del PC y pega la ruta en una hoja de excel
Option Explicit
Option Base 1
'Bill Manville
Dim aFiles() As String, iFile As Integer
Sub ListAllFilesInDirectoryStructure()
Dim Counter As Integer
iFile = 0
ListFilesInDirectory "c:\" ' change the top level as you wish
For Counter = 1 To iFile
ActiveSheet.Cells(Counter, 1).Value = aFiles(Counter)
Next
End Sub
Sub ListFilesInDirectory(Directory As String)
Dim aDirs() As String, iDir As Integer, stFile As String
' use Dir function to find files and directories in Directory
' look for directories and build a separate array of them
' note that Dir returns files as well as directories when vbDirectory
'specified
iDir = 0
stFile = Directory & Dir(Directory & "*.*", vbDirectory)
Do While stFile <> Directory
If Right(stFile, 2) = "\." Or Right(stFile, 3) = "\.." Then
' do nothing - GetAttr doesn't like these directories
ElseIf GetAttr(stFile) = vbDirectory Then
' add to local array of directories
iDir = iDir + 1
ReDim Preserve aDirs(iDir)
aDirs(iDir) = stFile
Else
' add to global array of files
iFile = iFile + 1
ReDim Preserve aFiles(iFile)
aFiles(iFile) = stFile
End If
stFile = Directory & Dir()
Loop
' now, for any directories in aDirs call self recursively
If iDir > 0 Then
For iDir = 1 To UBound(aDirs)
ListFilesInDirectory aDirs(iDir) & Application.PathSeparator
Next iDir
End If
End Sub
Gracias....
Cordialmente,
Juan Carlos Neira..



