Para que la macro se ejecute cuando abras el archivo tenemos que poner la macro en el evento "Open", para ello sigue las Instrucciones para poner la macro en ThisWorkbook
1. Abre tu libro de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
4. Del lado derecho copia la macro
Private Sub Workbook_Open()
'Por.DAM
ruta = Range("C2")
If ruta = "" Then
MsgBox "No hay ruta en la celda correspondiente", vbCritical
Exit Sub
End If
If Dir(ruta, vbDirectory) = "" Then
MsgBox "La ruta de la celda no existe", vbCritical
Exit Sub
End If
ChDir ruta
archi = Dir("*.xls*")
Do While archi <> ""
cadena = cadena & archi & ","
archi = Dir()
Loop
Range("C3") = ""
With Range("C3").Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=cadena
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
NOTAS:
En la celda C2 deberás poner la ruta, ejemplo:
C:\Documents and Settings\DAMOR\Mis documentos\docs
En la celda C3 te va a poner la lista de validación.
Cambia en la macro C2 y C3 por las celdas que quieras.
Saludos. Dante Amor
No olvides valorar la respuesta.