Macro para dejar en una cantidad más cercana

Quería ver si hay la posibilidad de hacer esto que quiero. Tengo esta hoja de excel donde en la fila D2 a D19 pongo ciertas cantidades y la fila E2 a F19 se encarga de quitarles el 10% y aquí quiero que entre lo que quiero. Necesito una macro que borre las cantidades que sean necesarias de la columna D2 a D19 para que el total de E20 quede lo más cercano a G20. Por ejemplo como se ve en la imágenes las cantidades que voy a borrar son D2 y D4 y en la imagen que sigue se ve lo que quiero

En esta imagen ya borre las cantidades y se ve que el precio menos el 10% bajo hasta 14,535.15 y lo que necesito es que llegue a 14,500 son 35.15 la diferencia entonces no hay problema el chiste es que la cantidad quede lo más cercano. Espero haberme dado a entender. Muchas gracias y feliz año!

1 respuesta

Respuesta
1

Yo escribí una función para encontrar los sumandos que arrojan un importe determinado, con la posibilidad de que devuelva el valor más aproximado si no encuentra el exacto: http://www.jrgc.es/ejemplos/EncontrarSumandos.xls

No es exactamente lo que pides, pero quizás te sirva para algo.

Tendrías que pegar el código que va en Módulo1, o el módulo completo, a una copia de tu libro (por si hay algún problema).

La sintaxis para este caso concreto sería: =ESS(G20;FALSO;E2:E19) (quizás haya que sustituir los puntos y comas por el separador de listas que esté establecido en la configuración regional del equipo).

La función debería devolver algo parecido a

E3 E4 E5 E6 
-->VALOR ENCONTRADO: 14.535,15<--

que son las direcciones de las celdas que dan la suma más próxima al resultado buscado, y la suma de dichas celdas.

Supongo que habrá que convertir la función en un procedimiento sub, si he entendido lo que necesitas hacer.

Saludos_

Esta perfecto así. ¿Nada más que me podría ayudar a adaptarlo a mi hoja? ¿Se puedo enviar a algún correo para que la revise?

Ya pude adaptarla a mi hoja nada mas un detalle. solo me funciona en formato de numero, se podrá hacer algo para ponerlo en formato de contabilidad? como se ve en la imagen las celdas de la columna E que están en verde son la que me indican las cantidades que necesito pero como le comento no lo pedo poner en formato de contabilidad porque me sale esto  "El importe buscado es mayor que la suma de los sumandos (0.00)." se puede corregir?

Se puede evitar que salga ese mensaje quitando estas líneas de código (o anteponiendo a cada una de ellas un apóstrofo ' ):

 'Si el importe buscado es inferior al más pequeño de los sumandos (y no hay importes negativos), salir con ese aviso.
    If WorksheetFunction.Min(rngMtr) > curBuscado And _
      WorksheetFunction.Min(rngMtr) > 0 Then
        ESS = "El importe buscado es inferior al más pequeño de los sumandos (" & Format(WorksheetFunction.Min(rngMtr), "#,##0.00") & ")."
        Exit Function
    End If

Saludos_

¡Gracias!  Perfecto elimine también (Si el importe buscado es mayor que la suma de todos los sumandos) y me funciona muy bien. Muchas gracias y que buen trabajo con esta función

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas