Completar celdas con el día, según imp. Facturado

Hola! Espero me puedas ayudar en este tema que me tiene dando vueltas con el archivo...
Tengo una grilla en excel que abarca 300 casilleros (20x15). ¿Cada casillero representa 20? Y son 300 porque - si se rellenan todos - es el importe mínimo que debo facturar en un mes (20 días hábiles), para cubrir los gastos fijos.
Ahora bien, actualmente estoy rellenando a mano cada casillero con el número del día hasta donde me alcance la facturación realizada ese día. Por ejemplo, ¿si el día 04/04 tengo tres ingresos que en total suman 100?, entonces coloco un "4" en 5 casilleros. ¿Si hubiera facturado 90?, ¿Tan sólo colocaría el 4 en 4 casilleros y los 10? Restantes los dejo a cuenta para el siguiente día. Al día siguiente, y a continuación, colocaré un 5 (por 05/04) en tantos casilleros como me permita la facturación diaria (sumando o restando el superávit o déficit del día anterior; es decir, sumo al importe diario lo que me sobró del día anterior, ¿o bien resto si el día anterior me faltaron? Para completar un casillero).
La idea es poder visualizar a medida que transcurre el mes, en qué días se facturó la mayor parte del total del ingreso. Por otro lado, como además de colocar el número del día también pinto esa celda, ópticamente puedo darme cuenta si en la fecha actual, estamos cubriendo los gastos fijos o no.
Bueno, la pregunta viene, si se puede hacer algo más mecanizado. Actualmente extraigo la información de una tabla que tiene la "Fecha", el "día" (tengo una fórmula que me convierte la fecha en el nº del día), y el "importe facturado" por registro/fecha.
Desde ya mil gracias!

1 respuesta

Respuesta
1
Prueba con estra macro y me comentas
Sub Distribuye()
A = InputBox("Ingrese la fila donde se encuentra la primera información", "Número de Fila")
B = InputBox("Ingrese el número de filas a distribuir", "Filas a Distribuir")
For i = 1 To b
c = Range("A" & a).Value
d = Range("B" & a).Value
e = Application.WorksheetFunction.RoundDown((d + f) / 20, 0)
f = Application.WorksheetFunction.Sum((d + f) - (e * 20))
    For kike = 1 To e
    g = Range("F" & Cells.Rows.Count).End(xlUp).Row + 1
    Range("F" & g).Value = c
    Range("F" & g).Select
    Selection.NumberFormat = "dd"
    g = g + 1
    Next kike
    a = a + 1
Next i
MsgBox "El saldo no distribuido fue de " & f & " Dólares"
End Sub
Disculpa, se me olvido comentar que para mi ejemplo el grupo donde quieres la info que se vaya pegando esta en la misma hoja que bajas tu base, ademas la info que bajas según mi ejemplo esta la fecha en A y los valores en B
Lo he resuelto con una fórmula "si" interminable que aparentemente funciona. No obstante probaré tu fórmula que me parece más fiable! =) Desde ya mil gracias por tu tiempo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas