Hacer que botones de macros funcionen con alguna condición previa.
Soy muy novato en este tema pero por cosas de la vida teminé en esto.
Todo comenzó con crear un modelo de factura, pero luego me han encargado dos botones que me están estresando la existencia.
Es un modelo de factura y necesito dos botones "CREAR PDF" que guarda la factura en formato pdf y la abre y "NUEVA FACTURA" que limpia los campos y aumenta en uno el contador de factura.
PEEEEERO, "CREAR PDF" solo debe estar activo si hay dos celdas llenadas como mínimo (nombre y monto total) así evitamos generar pdf en blanco. Además la ruta en donde se guarda y el nombre del archivo se escribirán en dos celda de la segunda hoja del excel.
"NUEVA FACTURA" solo debe estar activo después de haber usado el botón "CREAR FACTURA" así se evita borrar por error lo avanzado o presionarlo varias veces y aumentar el contador de facturas exageradamente por error.
Adjunto mis códigos a ver si me pueden salvar, gracias.
CREAR PDf:
Sub GenerarPDF() ' ' GenerarPDF Macro ' Genera un PDF de la factura creada. ' ' Dim NombreCliente As String Dim MontoTotal As Double NombreCliente = Cells(10, 3).Value MontoTotal = Cells(36, 11).Value If NombreCliente <> "" And MontoTotal <> 0 Then Range("A1:L37").Select ActiveWindow.SmallScroll Down:=-21 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\4ser\Desktop\TRABAJO\PDF FACTURA 01.pdf" _ , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _ :=False, OpenAfterPublish:=True Range("C10:L11").Select End If End Sub
NUEVA FACTURA:
Sub NuevoDocumento() Dim NumeroDocumento As Long Dim NombreCliente As String Dim MontoTotal As Double NombreCliente = Cells(10, 3).Value MontoTotal = Cells(36, 11).Value If NombreCliente <> "" And MontoTotal <> 0 Then NumeroDocumento = Worksheets("INSTRUCCIONES").Cells(31, 3).Value + 1 Worksheets("INSTRUCCIONES").Cells(31, 3) = NumeroDocumento Cells(6, 7) = NumeroDocumento End If Range("A19:A34").Select Selection.ClearContents Range("B19:I34").Select Selection.ClearContents Range("J19:J34").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-9 Range("C10:L11").Select Selection.ClearContents End Sub
A veces hasta me sale error tipo "13" cuando ejecuto varias veces el botón.