** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Crear pdf
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Crear pdf

 Responder Responder
Autor
Mensaje
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ximo Cita  ResponderRespuesta Enlace directo a este mensaje Tema: Crear pdf
    Enviado: 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
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5488
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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.


Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ximo Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1927
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita ximo Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 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
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5488
Opciones de entrada Opciones de entrada   Gracias (0) Gracias(0)   Cita AnSanVal Cita  ResponderRespuesta Enlace directo a este mensaje Enviado: 27/Mayo/2019 a las 19:39
Como suelen decir los maestros (de Access), «Si funciona; no lo cambies».  Wink

Aprendemos viendo respuestas de otros, también intentando resolver dudas (intenta ayudar cuando puedas/sepas).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable