Hace algunos días un usuario planteaba una cuestión interesante a través de un comentario.
Preguntaba por la manera de abrir un fichero con macros sabiendo únicamente el comienzo del nombre del fichero (y su ubicación).
La solución la encontramos en el uso de los comodines, el asterisco en este caso... que nos servirá para componer el nombre del fichero a buscar.
Así pues añadimos la siguientes macro dentro de la ventana de código de un módulo estándar en nuestro proyecto de VB:
Se observa el uso del comodín en la definición del nombre del fichero:
miFichero = Dir(miRuta & "*Scenarios.xlsm")
donde se indica que el fichero termina con la palabra 'Scenarios.xlsm'
Con lo que se soluciona la duda planteada.
Preguntaba por la manera de abrir un fichero con macros sabiendo únicamente el comienzo del nombre del fichero (y su ubicación).
[...]necesito que una macro me abra un archivo que empieza por un texto fijo pero el final va cambiando. Por ejemplo, tengo un archivo que se llama artículos genéricos, pero luego puede llevar un número que va cambiando. ¿Hay alguna forma de decirle al programa que abra el documento que empieza por "artículos genéricos*"?[...] |
La solución la encontramos en el uso de los comodines, el asterisco en este caso... que nos servirá para componer el nombre del fichero a buscar.
Así pues añadimos la siguientes macro dentro de la ventana de código de un módulo estándar en nuestro proyecto de VB:
Sub Abrir_Workboook_con_Nombre_Parecido() Dim WB As Workbook Dim miRuta As String, miFichero As String miRuta = "E:\excelforo\" 'indicamos cuál es el nombre aproximado del fichero 'emplamos el comodín * miFichero = Dir(miRuta & "*Scenarios.xlsm") 'lanzamos rutinas si hemos indicado algún fichero Do While miFichero <> "" Application.ScreenUpdating = False 'abrimos.... Set WB = Workbooks.Open(miRuta & miFichero) nombre = WB.Name 'y pedimos confirmación al usuario de que es el correcto... If MsgBox("Seguro que es este libro el que quieres abrir?" & vbTab & nombre, vbYesNo) = vbYes Then 'si es correcto nos vamos a la etiqueta 'continua' 'y realizamos las acciones que deseemos sobre el libro abierto GoTo continua Else 'si no es el libro deseado lo cerramos WB.Close End If 'Para obtener más nombres de archivo que coincidan con la Ruta, 'volveremos a llamar a la función Dir sin argumentos miFichero = Dir() Loop Exit Sub continua: 'aquí trabajaríamos con el libro abierto... 'y al terminar 'cerramos el libro WB.Close MsgBox "Fichero encontrado... y cerrado " & nombre End Sub
Se observa el uso del comodín en la definición del nombre del fichero:
miFichero = Dir(miRuta & "*Scenarios.xlsm")
donde se indica que el fichero termina con la palabra 'Scenarios.xlsm'
Con lo que se soluciona la duda planteada.
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.