Macro Excel realizar giros de una plantilla de facturación

y sus usuarios) he podido avanzar mi plantilla de facturación a falta de una simple cosa.He avanzado la factura y lo que me falta es crear una función de giros (Dividir el importe total de la factura) en en 30,60,90 y 120 días lo cual se correspondería con dividirlo entre 1 para el primero entre dos pagos el de 60,3 el de 90 y 4 el de 120. Lo ideal seria que mediante una casilla de verificación para cada tipo de los cuatro al pulsar me situara automáticamente en la casilla el importe correspondiente y en la casilla de abajo ya habilitada la fecha =Hoy()+ 30,60,90 o 120 dependiendo del caso.El resutado sería que debajo de cada importe aparecería la fecha en la que se debiera pagar,sólamente si pulsara la casilla de verificación es decir si pulso la de 30 solo esa fecha y si pulso la de 120 las cuatro.Me hacen un favor enorme si pueden ayudarme.Muchisimas gracias.

1 respuesta

Respuesta
2

Deja una imagen donde se pueda observar los encabezados de fila/col para poder desarrollar la macro correctamente. Y si ya tenés dibujadas las casillas también aclara el nombre del control.

O si te parece puedes enviarme tu libro a mi correo que aparece en sitio que dejo al pie.

Hola Elsa Gracias por tu respuesta;

Te adjunto una imagen más detallada ya tengo insertados dos casillas de verificación (1 y 2) así que el nombre de las siguientes sería de del 3 al 6 (nombre por defecto checkbox o algo así son de activeX)

Un saludo y muchas gracias

Teniendo ya varios controles te sugiero el uso de una control cuadro desplegable (Combobox)en lugar de botones de opción. Le debes asignar la propiedad ListFillRange, en mi ejemplo de la imagen los posibles valores los coloqué en el rango K29:K32.

Estando en Modo Diseño, doble clic en el combobox te llevará al Editor, a la hoja activa donde debes copiar la siguiente rutina:

Private Sub ComboBox1_Change()
'x Elsamatilde
totx = [G30]
giro = ""
fec1 = "": fec2 = "": fec3 = "": fec4 = ""
Select Case ComboBox1.Value
    Case Is = 30
        giro = totx
        fec1 = Date + 30
        [C32] = giro: C34 = fec1
        [E32:G34] = ""
    Case Is = 60
        giro = Round(totx / 2, 2)
        fec1 = Date + 30: fec2 = Date + 60
        [C32:E32] = giro
        [C34:D34] = fec1: [E34] = fec2
        [F32:G34] = ""
    Case Is = 90
        giro = Round(totx / 3, 2)
        fec1 = Date + 30: fec2 = Date + 60: fec3 = Date + 90
        [C32:F32] = giro
        [C34:D34] = fec1: [E34] = fec2: [F34] = fec3
        [G32:G34] = ""
    Case Is = 120
        giro = Round(totx / 4, 2)
        fec1 = Date + 30: fec2 = Date + 60: fec3 = Date + 90: fec4 = Date + 120
        [C32:G32] = giro
        [C34:D34] = fec1: [E34] = fec2: [F34] = fec3: [G34] = fec4
End Select
End Sub

Sdos y si esto resuelve tu consulta no olvides valorarla.... sino comenta.

Hola Elsa, muchas gracias por tu tiempo. Esta muy bien ya me funciona solamente queda un detalle pongamos que le doy a 30 días y se pone la información y que al final decido no hacerlo.Me tocaría borrarlo manualmente, he pensado en poner en el combo box una opción primera llamada 0 para que cuando la seleccione se borre lo anterior es decir quede todo en blanco(Los giros). He probado a escribir un poco de código pero no tengo mucha idea.De todos modos ya dejo valorada su respuesta, muchas gracias!

Podés colocar 0 o el texto que quieras. En mi ejemplo utilicé una celda por encima y extendí la propiedad ListFillRange desde K28:K32.

En la macro agregale al final las líneas que dejo en negrita:

Case Is = 120
'las instruccines que ya tenías

Case Else
    [C32:G34] = ""

End Select

End Sub

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas