Imprimir página | Cerrar ventana

Crear pdf

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=84515
Fecha de impresión: 26/Marzo/2026 a las 18:58


Tema: Crear pdf
Publicado por: ximo
Asunto: Crear pdf
Fecha de publicación: 26/Mayo/2019 a las 12:16
 Hola,
En un exccel tengo creado un albarán y mediante un botón creo y guardo el mismo en pdf, y funciona muy bien, el código utilizado en un modulo es el siguiente:

Sub Rectánguloredondeado_Haga_clic_en()
On Error GoTo aviso
Dim RutaArchivo As String
Dim NombreArchivo As String
Dim NombreCarpeta As String
Dim Ruta As String
'le damos nombre a la carpeta
NombreCarpeta = "Albaranes" & Year(Range("F10"))
'montamos la ruta
Ruta = ActiveWorkbook.Path & "\" & NombreCarpeta
'vemos si la carpeta existe
If Dir(Ruta, vbDirectory) = "" Then
       'si no esta lo creamos
       MkDir (Ruta)
    Else
End If
'creamos el mombre del archivo
NombreArchivo = "Albaran_" & Range("F9") & "_" & Format(Range("F10"), "ddmmyyyy")
'indicamos la ruta donde queremos guardar el archivo
RutaArchivo = ActiveWorkbook.Path & "\" & NombreCarpeta & "\" & NombreArchivo & ".pdf"
'y con esto guardamos
ActiveSheet.ExportAsFixedFormat xlTypePDF, RutaArchivo
Exit Sub
aviso:
MsgBox "Error: " & Err.Description & " " & Err.Number
End Sub   


Y ahora pregunto, los albaranes según el día siempre son los mismos (lunes, martes, etc) ahora tengo que retocarlos cada día llevándome un tiempo precioso, se puede hacer más fácil, mi idea es la siguiente, en la primera hoja cuatro columnas (dia, num_albaran, fecha, boton PDF) luego seis hojas más cada una con el albarán correspondiente, las hojas se pueden llamar (lunes, martes,etc) en cada una de estas hojas las celdas donde pongo el num_albaran y fecha poner (=hoja1!A2), creo que puede servir lo que no tengo claro es si tengo que cambiar algo del código para indicar que hoja tiene que coger para crear el pdf, y si se puede hacer con un solo código o a cada botón debo poner el suyo.

Un poco extenso pero creo que debía explicarlo lo mejor que se.

Saludos, ximo 


-------------
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana



Respuestas:
Publicado por: AnSanVal
Fecha de publicación: 26/Mayo/2019 a las 22:45
Hola, has ocupado mucho texto en explicar lo que tienes (eso no es malo), pero no me queda claro lo que quieres hacer y desde donde, tampoco sé que contiene F9 (en F10 supongo una fecha).

Si lo que pretendes es aprovechar el mismo código, el que ya tienes, para llamarlo desde cada una de las diferentes hojas, no creo que tengas problemas, ya que 'este' trabaja sobre la hoja activa y con los rangos de la hoja activa, eso sí; en cada hoja deberá tener en F9, F10, etc. los valores que necesites para según el día.




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


Publicado por: ximo
Fecha de publicación: 27/Mayo/2019 a las 16:12
Hola Antonio,

Objetivo: desde la hoja1(INICIO) y pulsando el botón correspondiente al día de la semana elegido crear un pdf de la hoja correspondiente a ese día de la semana.

En la hoja1 (INICIO) tengo cuatro columnas así:

DIA                  NUM_ALB              FECHA                    CREAR
LUNES                    92                 18/5/2019               BOTON_CREAR
MARTES                  93                 19/5/2019               BOTON_CREAR
...

En cada hoja en la celda F9  tengo (=INICIO!Bx) y en F10 (=INICIO!Cx) porque el nombre de guardado lo saco de ahí ( Albaran_92_18052019).

Yo estaba pensando en modificar la función con algo así

sub crearPDF (nombredehoja)
...
end sub

y llamarlo así desde cada boton

crearPDF(LUNES)


Saludos, ximo



-------------
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana


Publicado por: ximo
Fecha de publicación: 27/Mayo/2019 a las 18:46
Hola,

Pues una vez más he logrado solucionar la idea que me planteaba, aunque para ser sincero debo decir que es un verdadero caos  y dolor de cabeza el averiguar donde están las cosas que quieres utilizar, pero al final a sido una gozada.

Solución:

Sub CrearPDF(Nombre As String, Num As String, Fecha As Date)
On Error GoTo aviso
Dim RutaArchivo As String
Dim NombreArchivo As String
Dim NombreCarpeta As String
Dim Ruta As String
'le damos nombre a la carpeta
NombreCarpeta = "Albaranes" & Year(Fecha) 'Year(Range("C2"))
'montamos la ruta
Ruta = ActiveWorkbook.Path & "\" & NombreCarpeta
'vemos si la carpeta existe
If Dir(Ruta, vbDirectory) = "" Then
       'si no esta lo creamos
       MkDir (Ruta)
    Else
End If
'creamos el mombre del archivo
NombreArchivo = "Albaran_" & Num & "_" & Format(Fecha, "ddmmyyyy")
'indicamos la ruta donde queremos guardar el archivo
RutaArchivo = ActiveWorkbook.Path & "\" & NombreCarpeta & "\" & NombreArchivo & ".pdf"
'y con esto guardamos
Worksheets(Nombre).ExportAsFixedFormat xlTypePDF, RutaArchivo
Exit Sub
aviso:
MsgBox "Error: " & Err.Description & " " & Err.Number
End Sub


Y lo llamo así desde cada botón,



Private Sub CommandButton1_Click()
Dim Num As String, Fecha As Date
Num = Range("B2")
Fecha = Range("C2")
Call CrearPDF("Lunes", Num, Fecha)
End Sub




Si no se añade nada (para simplificar codigo) se puede cerrar, nos vemos por aquí.


Saludos, ximo


-------------
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana


Publicado por: AnSanVal
Fecha de publicación: 27/Mayo/2019 a las 19:39
Como suelen decir los maestros (de Access), «Si funciona; no lo cambies».  Wink



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


Publicado por: ximo
Fecha de publicación: 09/Enero/2020 a las 19:28
Hola,

Este hilo esta por cerrar, Gracias.


-------------
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana



Imprimir página | Cerrar ventana