Duda buscar archivo excel con macro

Buenos días, tengo una duda.
Con el siguiente código abro un archivo excel y la hoja que necesito.
   Set xlApp = New Excel.Application
   direccion = "C:\Documents and Settings\Pepe\Mis documentos\090709 Prueba.xls"
   Set xlLibro = xlApp.Workbooks.Open _
   (direccion, True, True, , "")
   Set xlHoja = xlApp.Worksheets("Hoja1")

Usando xlHoja.Cells(x, y) ya tengo las casillas que necesito.
Pues bien, mi pregunta es que quiero que me abra un archivo cuyo nombre empiece por 090709 (la fecha), independientemente de lo que venga después.
¿Cómo se haría?
Gracias.

1 Respuesta

Respuesta
1
Te dejo un ejemplo para que lo puedas adaptar a tu caso, de cómo buscar un libro conociendo 'parte' del nombre:
Sub abrolibro()
'desarrollada por Elsamatilde
Set xlApp = New Excel.Application
'carpeta donde se hará la búsqueda
strCarpeta = "C:\Documents and Settings\Pepe\Mis documentos\"
'pasamos al directorio elegido, indicando como tipo de archivo Excel (Ver nota*)
ChDir strCarpeta
direccion = Dir("090709*.xls")
Workbooks.Open (strCarpeta & direccion)
ActiveWorkbook.Worksheets("Hoja1").Select
End Sub
Sdos
Elsa
http://aplicaexcel.galeon.com/manual_VBA.htm
Me da error.
Al final lo he conseguido con esto:
Sub abrolibro()
Dim direccion As Variant
Dim xlApp As Excel.Application
Dim xlLibro As Excel.Workbook
Set xlApp = New Excel.Application
direccion = Dir("C:\Documents and Settings\Pepe\Mis documentos\090713*.xls")
direccion = "C:\Documents and Settings\Pepe\Mis documentos\" & direccion
Set xlLibro = xlApp.Workbooks.Open _
(direccion, True, True, , "")
Set xlHoja = xlApp.Worksheets("Hoja1")
Cells(1, 1) = xlHoja.Cells(15, 2)
End Sub
Me ha servido mucho lo del asterisco *.
No se porqué no me funcionaba tu código.
Y una cosilla, que he visto ya varias veces en preguntas ¿por qué no poneis los expertos los Dim? ¿Si no declaras variables no funciona no?
¿Y un mensaje en caso de no encontrarlo cómo se añadiría?
A mí si me funciona la rutina enviada, ¿algo habrás escrito diferente o será la versión?
Para controlar posibles errores podes colocar esta línea por encima de la que tenés con el Open, y luego las marcadas con negrita deben quedar en ese orden.
On error goto to errando
'línea con open
'otras líneas
Exit Sub
errando:
Msgbox "No se encontró archivo"
End Sub
No tuve tiempo de probarlo, si te surge alguna dificultad, márcame la línea
Con respecto a la declaración de variables:
Si tu Editor NO tiene establecida como 'obligatoria' la declaración de variables, declararlas o no, será indistinto, no afectará al proceso en absoluto.
Lo que sí importa es en cuanto al peso del proceso. Al no declararlas se consideran del tipo variant y por lo tanto ocupan mucho más espacio que si las declaras como byte por ej. Por lo tanto SÍ es recomendable que las declaren.
¿Qué los expertos no lo hacemos? Supongo que será solo por una cuestión de rapidez (y en algunos casos quizás también de desconocimiento)
Sdos. Comentame si lo resolviste

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas