Desglose de cantidades en efectivo

Tengo una nomina de 20 personas de las cuales se lespaga en efectivo y el problema que al cambiar el dinero luego mefaltan monedas o me sobran billetes y es un relajo por lo cual

Me podrían apoyar para hacer un desglose por ejemplo la cantidad a pagar es

2578.50

El desglose seria de la siguiente manera

1 moneda de 50 centavos

1 moneda de 5 pesos

1 monedas de 2 peso

1 moneda de 1 peso

1 billete de 50 pesos

1 billete de 20 pesos

5 billetes de 500 pesos

Y así

Espero me puedas apoyar quedo al pendiente de tus comentarios

1 Respuesta

Respuesta
2

Te anexo una función para realizar el desglose

Function cuantos(c)
'por.Dante Amor
    b = Array(500, 100, 50, 20, 10)   'Billetes
    m = Array(5, 2, 1)                      'Monedas
    v = c
    dec = v - Int(v)
    dec = Right(Format(dec, ".00"), 2)
    '
    'Desglosa billetes
    For i = LBound(b) To UBound(b)
        If v / b(i) >= 1 Then
            If Int(v / b(i)) = 1 Then
                s = s & "uno" & " de $" & b(i) & ", "
            Else
                s = s & Int(v / b(i)) & " de $" & b(i) & ", "
            End If
            v = v - Int(v / b(i)) * b(i)
        End If
    Next
    If s <> "" Then
        s = "Billetes: " & Left(s, Len(s) - 2)
        n = InStrRev(s, ",")
        If n > 0 Then s = Left(s, n - 1) & " y" & Mid(s, n + 1)
    Else
        s = "0 billetes"
    End If
    '
    'Desglosa monedas
    If v > 0 Then
        For i = LBound(m) To UBound(m)
            If v / m(i) >= 1 Then
                If Int(v / m(i)) = 1 Then
                    t = t & "una" & " de $" & m(i) & ", "
                Else
                    t = t & Int(v / m(i)) & " de $" & m(i) & ", "
                End If
                v = v - Int(v / m(i)) * m(i)
            End If
        Next
        If t <> "" Then
            t = Left(t, Len(t) - 2)
            n = InStrRev(t, ",")
            If n > 0 Then t = Left(t, n - 1) & " y" & Mid(t, n + 1)
        Else
            t = " 0 monedas"
        End If
    Else
        t = " 0 monedas."
    End If
    cuantos = s & ". Monedas: " & t & ". Centavos: " & dec & " Centavos"
End Function

En una celda escribe la cantidad, por ejemplo en la celda B2 escribe la cantidad. En otra celda pon la fórmula 

=cuantos(B2)

Sigue las Instrucciones para una Función

  1. Abre tu libro de excel
  2. Para abrir VBa y poder pegar la función, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la función
  5. En cualquier celda utiliza la función, como cualquier otra función de excel

ejemplo:

Saludos. Dante Amor

Recuerda valorar la respuesta.

Te anexo nuevamente el ejemplo, ya que no se veía la fórmula:

Recuerda valorar la respuesta.

Tienes que modificar en esta parte de la macro, los billetes y las monedas que vas a utilizar. Tienes que ponerlos de mayor a menor.

b = Array(500, 100, 50, 20, 10)   'Billetes    m = Array(5, 2, 1)                      'Monedas

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas