Imprimir página | Cerrar ventana

nombre de archivo

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86842
Fecha de impresión: 26/Marzo/2026 a las 17:28


Tema: nombre de archivo
Publicado por: matasl
Asunto: nombre de archivo
Fecha de publicación: 18/Enero/2024 a las 19:57
 Hola, hola para todos y feliz año

Esoy elaborando un código que ocupa el siguiente procedimiento para dar el nombre del archivo

cCarpeta = ActiveWorkbook.Path & "\"

cNombreArchivo = Dir(cCarpeta & "Z01*" & "*.xl*")

pero al llegar a la segunda opcion me da el problema:  

Nombre o número de archivo incorrecto (error 52)


llevo mucho rato tratando de encontrar dónde está mi error, pero no lo consigo. Agradezco cualquier ayuda al respecto, muchas gracias.

Bendiciones


-------------
"En el proceso de aprendizaje no basta con la intención de enseñar, debe también haber intención de aprender"


Pura vida.
Muchas gracias
Bendiciones.



Respuestas:
Publicado por: xavi
Fecha de publicación: 19/Enero/2024 a las 10:26
Hola,

¿Visual Basic Clásico? Mas bien me suena a Excel. Muevo el hilo.

En cuanto al problema específico, evalúa:
1. Que ActiveWorkbook.Path devuelve algo. Si el fichero está creado a partir de una plantilla con macros, ese valor creo que está vacío mientras no se salve el fichero. Pon un punto de interrupción y evalúa el contenido de cCarpeta
2. La instrucción Dir acaba concatenando 2 * seguidos. Pensaba que podría ser un problema pero, en mi caso, no es así. Adicionalmente (por si acaso) indica que lo que evalúas es un fichero: Dir(laruta, vbArchive)

El error 52 se produce habitualmente cuando la carpeta de destino es inaccesible. Es, cuando menos, raro.

Un saludo


-------------
Xavi, un minyó de Terrassa

http://www.llodax.com" rel="nofollow - Mi web


Publicado por: matasl
Fecha de publicación: 19/Enero/2024 a las 19:19
Muchas gracias por atender mi duda.

1. ActiveWorkbook.Path si me devuelve la dirección de la carpeta

2. Efectivamente la instrucción "Dir" concatena dos parámetros. Inicialmente si me funcionó, pero fue luego de que apagué la PC y al día siguiente intenté terminar el código y me presentó el error que les comento. He intentado usar "/" y "\" para ver si ese fue el error; pero no he logrado resolver que sucede.




-------------
"En el proceso de aprendizaje no basta con la intención de enseñar, debe también haber intención de aprender"


Pura vida.
Muchas gracias
Bendiciones.


Publicado por: AnSanVal
Fecha de publicación: 20/Enero/2024 a las 12:54

Parece que lo que pretendes es: buscar un archivo (contenido en la carpeta donde se ubica el libro activo) cuyo nombre empieza por Z01 y obtener su nombre + extensión.



En un libro nuevo incluí este código (no afecta, pero no es necesario "doble asterisco")...


Sub algo()

  Dim cCarpeta$, cNombreArchivo$

  'cCarpeta = ActiveWorkbook.Path & "\"

  'cNombreArchivo = Dir(cCarpeta & "Z01*" & "*.xl*")

  cCarpeta = ActiveWorkbook.Path & "\"

  cNombreArchivo = Dir(cCarpeta & "Kl*" & ".xl*")

  Debug.Print cNombreArchivo

End Sub


... lo guardé en una carpeta donde tengo un archivo cuyo nombre es Klondike, luego ejecuté el código y en la ventana Inmediato (Debug.Print) me devolvió Klondike.xlsm, sin ningún tipo de problema.


 Asegúrate de que en tu carpeta exista (al menos) un archivo de nombre Z01???.xls? .






-------------
Saludos desde Tenerife.


Publicado por: matasl
Fecha de publicación: 08/Febrero/2024 a las 04:23
Muchisimas gracias por la colaboración, sollucionado.

Procedo a cerrar el tema.

Pura vida

-------------
"En el proceso de aprendizaje no basta con la intención de enseñar, debe también haber intención de aprender"


Pura vida.
Muchas gracias
Bendiciones.



Imprimir página | Cerrar ventana