Guardar PDF según las hojas utilizadas de mi Excel

Para Dante Amor. ¿Hola Cómo estas? Tu me has ayudado en varias macros. Ahora te quería pedir si me podes dar una mano con un problema que tengo. Tengo un Excel con 5 hojas para la toma de pedidos. Muchas veces no se utilizan todas. ¿Hay alguna manera que pueda exportar a PDF solo las hojas utilizadas? ¿Qué me guarde el PDF con el nombre del cliente y la fecha? Te adjunto la macro que me mandaste anteriormente.

Espero tus comentarios

Sub GuardarPDF()
Application.ScreenUpdating = False
Application.DisplayAlerts = False

ruta = "C:\Users\martinb\Desktop\SPM\"
 nomb = [G4] & " " & [B3]
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=ruta & nomb & Format(Range("G2"), "dd-mm-yyyy") + Format(Now, "(hh'mm)") & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
MsgBox "Se ha guardado el Pedido en PDF", vbInformation
End Sub

1 respuesta

Respuesta
1

H o l a : Tengo las siguientes dudas:

  • ¿Cómo saber si la hoja está utilizada?
  • ¿Quieres un pdf con todas las hojas?
  • ¿De cuál hoja obtengo los datos para el nombre del archivo pdf?

Dante, gracias por tu respuesta.

Si celda G4  no esta vacía identifica que tiene cargado un pedido (va el nombre del cliente)

Si es posible que todas las hojas que tengan un pedido se guarden en un solo PDF.

Se puede tomar desde la celda G4 de la hoja con pedido + G2 (fecha y hora)

Si ves que es muy complicado te envío la planilla para que la veas.

Desde ya muchas gracias por tu ayuda

Te anexo la macro actualizada

Sub GenerarPdf()
'Por.Dante Amor
    Dim hojas()
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    ruta = "C:\Users\martinb\Desktop\SPM\"
    ruta = "C:\trabajo\"
    n = -1
    For Each h In Sheets
        If h.[G4] <> "" Then
            n = n + 1
            ReDim Preserve hojas(n)
            hojas(n) = h.Name
            If nomb = "" Then
                nomb = [G4] & " " & [B3] & Format(Range("G2"), "dd-mm-yyyy") + Format(Now, "(hh'mm)") & ".pdf"
            End If
        End If
    Next
    If n > -1 Then
        Sheets(hojas).Copy
        ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nomb, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
        ActiveWorkbook.Close False
        MsgBox "Archivo PDF generado"
    End If
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Gracias Dante,  en el caso que me quedan mal los nombres del cliente, se puede hacer que si los nombres de la celda G4 no son iguales no avise que hay un error??

Muchas gracias por tu ayuda!!

No entiendo tu comentario.

Tienes 5 hojas. Quieres que revise el dato de las 5 celdas G4, y si son diferentes te envié un mensaje y si son iguales, se genere el archivo.

Es algo nuevo que no comentaste en tu pregunta original. Con mucho gusto te ayudo con todas tus peticiones.

Dante,

Es exactamente lo que me pones en tus primeras líneas. 

Igualmente necesito hacerte otra consulta!!

Valora esta respuesta y en otra consulta me pones cómo quieres el nombre del archivo y cómo quieres valide los nombres.

Con mucho gusto te ayudo con todas tus peticiones. Crea una pregunta por cada petición.

¡Gracias!  Dante, gracias por tu ayuda!!

No olvides valorar la respuesta para continuar con las siguientes peticiones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas