Crear carpeta y guardar hoja en pdf
Agradecería ayuda necesito crear una macros que me cree una carpeta según el valor de la celda A1, al mismo tiempo quede guardada una hoja en pdf en esa misma carpeta nombrada con el valor de la celda A2 y guarde el archivo en formato habilitado para macros en la misma carpeta con el valor de la celda A3, quedaría muy agradecido
1 Respuesta
H o l a:
Te anexo la macro, cambia "Hoja1" por el nombre de la hoja que quieras guardar como pdf:
Sub GuardarPdf() 'Por.Dante Amor Set h1 = Sheets("Hoja1") carpeta = h1.[A1] aPdf = h1.[A2] aMacro = h1.[A3] If Dir(carpeta, vbDirectory) = "" Then MkDir carpeta If Right(carpeta, 1) <> "\" Then carpeta = carpeta & "\" h1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=carpeta & aPdf & ".pdf" ActiveWorkbook.SaveCopyAs carpeta & aMacro & ".xlsm" MsgBox "Fin" End Sub
primero muchas gracias por responder, no se porque no deja grabar te envio el archivo con el cual ando trabajando donde reemplazo las celdas a1 por la j9 a2 por laj7 y a3 por j8, nose si sea por lo largo del nombre o que puede suceder
En la imagen no veo las celdas j9, j7 ni j8, intenta con nombre cortos en las celdas.
Pon por ejemplo
En J9
c:\trabajo\nueva
En j7
Hoja
En j8
Macro
Y prueba nuevamente.
Te recuerdo que los nombres de archivo no pueden llevar ciertos caracteres como la diagonal /
Prueba la macro con los ejemplos que te estoy poniendo y si todo funciona recuerda valorar la respusta.
Envíame tu archivo, pero antes prueba con nombres cortos.
Mi correo [email protected]
En el asunto del correo escribe tu nombre de usuario “Gabriel Romero” y el título de esta pregunta.
listo ya te lo envié, el archivo se llama formato de codificación, la hoja es la que se llama propuesta, no se si lo largo de los nombres puede ser lo que hace que falle, porque hay ocasiones donde si funciona, pero en el ejemplo que te mando no lo hace, toda la creación de la carpeta y los archivos es al oprimir el botón salir y guardar ubicado en la parte inferior de la hoja propuesta.
nota: los nombres deben ser largos porque corresponden a nombres de laboratorios y productos, quedo agradecido por tu atención
Te anexo la macro actualizada
Sub GuardarPdf() 'Por.Dante Amor Set h1 = Sheets("PROPUESTA") carpeta = "C:\" & h1.[J9] aPdf = h1.[J7] aMacro = h1.[J8] If Dir(carpeta, vbDirectory) = "" Then MkDir carpeta If Right(carpeta, 1) <> "\" Then carpeta = carpeta & "\" h1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=carpeta & aPdf & ".pdf" ActiveWorkbook.SaveCopyAs carpeta & aMacro & ".xlsm" MsgBox "Fin" End Sub
Sal u dos
sigue apareciéndome el mismo error que mostré,anteriormente y me resalta eso,sera por lo la longitud del nombre?
Revisaste la celda D13 tienes esto:
"Adalata oros "
Al final del dato tienes un espacio, revisa que la información no tenga espacios al final:
"Adalata oros"
En esta línea
carpeta = "C:\" & h1.[J9]
Agrega la carpeta de tu escritorio
carpeta = "C:\Documents and Settings\DAMOR\Escritorio\" & h1.[J9]
'
sal u dos
¿Okey al aparecer el error que ocurre es por ese espacioal final verdad?, ¿Existe forma de evitar eso? ¿Para qué la macro funcione siempre?
Con la instrucción trim:
Sub GuardarPdf() 'Por.Dante Amor Set h1 = Sheets("PROPUESTA") carpeta = "C:\trabajo\" & Trim(h1.[J9]) aPdf = h1.[J7] aMacro = h1.[J8] If Dir(carpeta, vbDirectory) = "" Then MkDir carpeta If Right(carpeta, 1) <> "\" Then carpeta = carpeta & "\" h1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=carpeta & aPdf & ".pdf" ActiveWorkbook.SaveCopyAs carpeta & aMacro & ".xlsm" MsgBox "Fin" End Sub
recuerda poner tu carpeta
Tienes que poner la carpeta completa
carpeta = "C:\trabajo\" & Trim(h1.[J9])
o escoge otra carpeta, por ejemplo:
carpeta = "C:\Documents and Settings\DAMOR\Escritorio\" & h1.[J9]
Yo no sé dónde está tu carpeta, puedes poner otra, crea una nueva:
carpeta = "C:\archivos\pdfs\respaldo\" & h1.[J9]
Si quieres una función para que investigue cómo se llama tu carpeta de escritorio, crea una nueva pregunta.
Ya en esta pregunta tenías varias peticiones:
1. Crear carpeta
2. Crear pdf
3. Guardar archivo de macro
Con mucho gusto te ayudo con todas tus peticiones.
Crea una nueva pregunta en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor"
Sal u dos
- Compartir respuesta