Identificar decimales con Macro

Hola qué tal:
Nuevamente recurro a tu invaluable ayuda para resolver un problema que me surgió a la hora de programar la macro, pero no puedo pasar de ahí ya que no encuentro la función adecuada para esto.
Resulta que tengo una lista de números en la columna A de los cuales algunos tienen decimales, entonces lo que quiero es que cuando un número tenga decimales me quite el separador de decimales, una forma que había pensado es que cuando encontrara el número con decimales lo multiplique por 1000 ya que uso 3 decimales, por ejemplo al tener 3.336 (mi separador de decimales en la configuración que tengo es el punto (.))Y al hacer la multiplicación me queda 3336, es decir quitó el separador de decimales, pero la cuestión es que no sé cómo hacer para que la macro identifique cuando se trata de un número con decimales y un número entero ya que de aplicar la fórmula general para todos me multiplicaría los números enteros y distorsionaría el valor por ejemplo al encontrar 2 lo pondría como 2000 y ahí ya no es lo que necesito, Me podrías ayudar por favor en orientarme cómo puedo hacer para hacer que la macro solo haga la multipicación en números con decimales y los enteros los deje así.
De antemano agradezco infinitamente tu atención.

1 respuesta

Respuesta
1
Sigue estos pasos:
1º Pasa a una variable el texto de la celda text=ActiveCell.Text
2º Cuenta los caracteres que tiene la cadena para que si tiene más de 4 sabemos que es posible que tengamos un decimal ( no es seguro porque puede ser entero de millares o más, ejmp: 1000) total=Len(text)
3º Ponemos la condición de que si la variable total es igual o mayor de 4, sacamos el 4 carácter por la derecha
If total=>4 Then
car=Right(text,4)
End If
4º Ponemos la condición de que si el carácter es igual a un punto que el valor de la celda lo multiplique por 1000
If car="." Then
valor=ActiveCell.Value*1000
ActiveCell.Value=valor
End If
Sub quitar_decimales()
Range("A1").Select
Do While ActiveCell.Value <> ""
Text = ActiveCell.Text
total = Len(Text)
If total >= 4 Then
car = Right(Text, 4)
punto = Mid(car, 1, 1)
End If
If punto = "." Then
valor = ActiveCell.Value * 1000
ActiveCell.Value = valor
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Prueba esto a ver si solucionamos tu problema.
>Un saludo
>Julio

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas