Como redondear con WorkSheetFunction




Redondear en Excel es algo bastante común, te presento una macro que permite redondear un rango de datos a la cantidad de decimales que se requiera; se realiza a través de WorksheetFunction que tiene como finalidad ejecutar casi todas las funciones que trae incorporadas Excel, si necesitas aprender más sobre WorksheetFunction funciones de Excel en VBA sigue el link; si deseas saber que funciones de Excel se pueden usar en VBA y aplicar en una macro, visita listado de todas las funciones.

Otros ejemplos que quizás te interesen que utilizan WorksheetFunction los encuentras en como se utiliza la función VLookup o BuscarVcomo utilizar BuscarV se explica la utilización de dicha función en Excel, otras funciones Vlookup o BuscarVSumIfs o SumIf.

Este es uno de los mejores cursos on line que he visto en internet donde encontrarás todo lo necesario para aprender o profundizar en programación de macros.






En esta ocasión muestro una macro que utiliza WorksheetFunction.Round que permite redondear un número a una cantidad de decimales específicada, la sintaxis es la siguiente:

WorksheetFunction.Round(Arg1, Arg2)

El significado de los parámetros son:

Arg1 es un dato obligatorio, el número que se desea redondear.
Arg2, es un dato obligatorio y representa la cantidad de decimales que se tiene que tener en cuenta para redondear.

Para llevar a cabo el ejemplo se realiza un bucle desde la primer fila hasta la última fila con datos, en cada uno de los registros se va redondeando el número que se encuentra en la columna C, siendo los decimales requeridos para redondear los que se exponen en la celda G1.

Con el código que se muestra seguidamente permite asignar a la celda de la columna D correspondiente el número redondeado de la columna C correspondiente

Cells(fila, "D") = Application.WorksheetFunction.Round(Cells(fila, "C"), Range("G1"))

En el ejemplo también se le otorga un formato de número con cinco decimales al resultado obtenido a través de este código Range("B25").NumberFormat = "#,##0.00000", como se puede observar al final de la macro, por último aparece un mensaje a través de un msgbox que avisa que el procedimiento de redondeo se realizó con éxito, recuerda que como siempre la descarga del ejemplo es GRATUITA y se realiza desde el link que se encuentra en el final del post.

Finalizando, el ejemplo de macro que utiliza WorksheetFunction Round o Redondear se puede descargar desde el link del final de este post, una vez descargado el ejemplo se presiona el botón que dice "Redondear" y se ejecuta la macro redondeando las filas correspondientes; para probarla se pueden cambiar la cantidad de decimales de G1 y el resultado se modificará.
Aporta si es posible con ello ayudarás a seguir manteniendo el sitio; suscribe al blog para recibir en tu correo todas las actualizaciones, dispones también de un canal de You Tube donde encontrarás explicaciones de macros con mayor detalle.

Código que se inserta en un módulo



Sub Redondear()
Application.ScreenUpdating = False
On Error Resume Next
DisplayAlerts = False
Dim uf As String
Dim fila As Integer
fila = 2
uf = Sheets("Hoja1").Range("A" & Rows.Count).End(xlUp).Row
Range("D2:D" & uf).Clear
While Cells(fila, "A") <> Empty
Cells(fila, "D") = Application.WorksheetFunction.Round(Cells(fila, "C"), Range("G1"))
fila = fila + 1
Wend
Range("C:C").NumberFormat = "#,##0.00000"
Range("D:D").NumberFormat = "#,##0.00000"
MsgBox ("Se redondeo a " & Range("G1") & " decimales con éxito"), vbInformation, "AVISO"
DisplayAlerts = True
Application.ScreenUpdating = True
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends