Hola a todos!!
Hoy publicaré un post en el que vamos a crear un código que nos permita pasar números con decimales (positivos o negativos) a un número entero, es decir, el número sin sin decimales ni redondeos. El motivo es que hace unos días un lector me pidió eso exactamente.
Para realizar este ejercicio utilizaremos este ejemplo:
Como podéis ver, tenemos una mezcla de números (positivos, negativos, con decimales o enteros). Y ahora debemos realizar lo que nuestro compañero lector nos ha pedido, solo enteros y respetando el signo del número.
Para hacerlo utilizaremos este código:
Sub CONVERTIR_SELECCION_A_ENTERO()
Dim i As Range, Area As Object
With Sheets("Hoja1")
'Incluimos un control error en caso de ejecutar la macro sin seleccionar datos
On Error GoTo Control
'Área será el rango que vayamos a seleccionar
Set Area = Application.Intersect(Selection, .UsedRange)
'Iniciamos un bucle que recorra cada uno de las celdas en el "área" seleccionada
For Each i In Area
'Si el número no es entero entonces los pasamos a entero
If i CInt(i) Then i = CInt(Fix(i))
'Ocultamos los ceros que quedan "vacíos" después de pasar a entero
Selection.NumberFormat = "0"
Next i
Control: If Err.Number = "424" Then
MsgBox ("EL RANGO SELECCIONADO NO CONTIENE DATOS"), vbExclamation, "SIN DATOS SELECCIONADOS"
End If
End With
End Sub
Una vez aplicada la macro este es el resultado:
Efectivamente, hemos pasado todos los números a entero, y hemos utilizado la función Fix para que respete el signo de los números negativos y que además elimine todos los números después de la coma, dejando el número principal sin redondeos.
Y eso es todo, os dejo el archivo para que realicéis pruebas 🙂
Descarga el archivo de ejemplo pulsando en: SELECCIONAR NÚMEROS Y CONVERTIRLOS A ENTERO CON VBA
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!