Como crear un plantilla automática con un formulario

Tengo una pregunta y no se si usted me podría ayudar.

Tengo un archivo de Excel en donde pienso crear cotizaciones y a través de un botón guardar en PDF dicha cotización con una plantilla ya definida.

Lo que quiero es que la persona solo tenga que introducir los campos de (Nombre del cliente, cantidad, precio, etc) y elegir de la lista el producto solicitado y al momento se dar clic en el botón quede ya un archivo grabado.

Lo que no sé, es con respecto a la plantilla, como ajustar automáticamente su tamaño y que no me deje los espacios en blanco en caso de que no se cotizen varios productos.

Envío link con el ejemplo y una cotización en PDF ejecutada.

Documentos

1 respuesta

Respuesta
1

Disculpa, ya tengo tus archivos, pero no entendí qué es lo que necesitas.

Quieres que al presionar el botón "Guardar", ¿se revise la hoja "impresión" y si hay filas vacías que se borren?

Hola!!!

Exacto,  quisiese que al momento de dar "Guardar" se cree una hoja con el formato de "Impresión" y me lo guarde en PDF.

Como veras actualmente si doy en "Guardar" me crea el archivo pero me deja los espacios en blanco en las celdas donde no hay productos.

O alguna manera de crear un reporte similiar a "Impresión" donde se autoajuste a la información que introduzco.

Te anexo la macro para eliminar los espacios en blanco, cambia "ReportePDF" por esta nueva.

Sub ReportePDF()
'Act.Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Sheets("Impresion").Copy After:=Sheets(Sheets.Count)
    Set h2 = ActiveSheet
    h2.Cells.Copy
    h2.[A1].PasteSpecial Paste:=xlPasteValues
    '
    Set b = h2.Cells.Find("Atentamente", lookat:=xlWhole)
    If Not b Is Nothing Then
        Sheets("Impresion").DrawingObjects("Imagen 2").Copy
        h2.Paste
        Selection.Top = Cells(b.Row - 3, "A").Top
        Selection.Left = Cells(b.Row - 3, "A").Left + 10
    End If
    '
    j = 18
    For i = 1 To 4
        If h2.Cells(j, "A") = "" Then
            h2.Rows(j & ":" & 40).Delete
            Exit For
        End If
        j = j + 6
    Next
    '
    On Error Resume Next
    h2.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:="C:\Users\Prueba Cotizaciones\" & _
        Trim(InputBox(" Ingrese el nombre del reporte a generar ", "Gerencie.com")) & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
    h2.Delete
End Sub

Saludos.Dante Amor

¡Woow!

Muchas gracias, realmente funcionó, lo único es que se me traba el archivo PDf al abrirlo, pero también lo hacia anteriormente. Sólo lo abro con otro programa.

Muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas