Macro que me redondeé de .01 a .49 en .50 y de .50 a .99 en 1

Como el titulo de la pregunta lo dice necesito una macro que me redondee cantidades dependiendo de los decimales por ejemplo 18.01 a 18.25 que lo deje en 18.00 de 18.26 para arriba en 18.50 y de .60 para arriba en 19.00.

1 Respuesta

Respuesta
1

Es algo confuso, porque en tu título tienes unos valores y en tu explicación tienes otros valores.

Te recomiendo hacer una especie de tabla.

Por ejemplo:

De       A         Redondear a:         Ejemplo          Resultado       

.01    .49           .00                          5.15                     5.00

.50    .99           1                              6.59                     7.00

De esa manera será más fácil de explicar y más fácil de entender.

Ok, Una disculpa. seria así como quiero.

De       A         Redondear a:         Ejemplo          Resultado       

.25    .49           .50                          5.25                     5.50

.65    .99           1                              6.65                     7.00

Está incompleta la tabla...

¿Qué pasa con los decimales de .01 a .24?

¿Qué pasa con los valores de .50 a .64?

Buenas tardes. Ok, una disculpa espero darme a entender con este ejemplo

     cantidad          De       A         Redondear a:         pasando de          redondear a     

         4.15             .01    .24          $4.00                            .25                        4.50

     cantidad          De       A         dejar en                  pasando de          redondear a  

         4.50             .50    .64           4.50                            .65                          5.00

Utiliza la siguiente función:

Function RedondearCant(celda As Variant)
  Dim ent As Long, dec As Long
  ent = Int(celda)
  dec = Int((celda - ent) * 100)
  Select Case dec
    Case Is < 25
      celda = ent
    Case Is < 65
      celda = ent + 0.5
    Case Else
      celda = ent + 1
  End Select
  RedondearCant = celda
End Function


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
  6. Regresa a la hoja de excel, por ejemplo, para redondear el valor de la celda "B8" en la celda "C8" escribe la función:
    =RedondearCant(B8)

Ejemplo:


Si quieres un ejemplo de cómo se aplica en una macro:

Sub test()
  Dim celda As Double
  Dim ent As Long, dec As Long
  '
  celda = 3.25      'ejemplo
  ent = Int(celda)
  dec = Int((celda - ent) * 100)
  Select Case dec
    Case Is < 25
      celda = ent
    Case Is < 65
      celda = ent + 0.5
    Case Else
      celda = ent + 1
  End Select
  MsgBox celda
End Sub

[No olvides valorar la respuesta]

Perfecto esto es lo que necesito ¡Muchas gracias!

[No olvides puntuar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas