Macro de excel para un rango

Me puedes ayudar con una macro que elimine datos no numéricos incluyendo espacios.

3 respuestas

Respuesta
1
A ver si esto es lo que querías:
Sub nonumericos()
Range("a1").Select
For l = 1 To Len(ActiveCell.Value)
car = Mid(Range("a1"), l, 1)
If (car >= "0" And car <= "9") Or car = " " Then
Selection.Font.ColorIndex = 3
l = Len(ActiveCell.Value)
End If
Next l
End Sub
He incluido a la macro un código con el cual el texto se vuelve rojo en el momento que algún carácter no es correct (números o espacios en blanco)
Si ademas quieres que el texto de la celda a1 se borre incluye al final del then:
Range("a1").Delete
Respuesta
1
La macro que te desarrollé toma todas las celdas con datos (hasta que encuentra una vacía) de la columna C (podes cambiarla a otra) y copia a la columna DE solo los valores numéricos.
Si esto es lo que necesitas, aquí está:
Sub desechacaracter()
Dim valor As String
Dim indice As Integer
Range("C2").Select
valor = ActiveCell.Value
indice = 1
While valor <> ""
While indice <= Len(valor)
If Asc(Mid(valor, indice, 1)) > 47 And Asc(Mid(valor, indice, 1)) < 58 Then
ActiveCell.Offset(0, 1).Value = ActiveCell.Offset(0, 1).Value & Mid(valor, indice, 1)
End If
indice = indice + 1
Wend
ActiveCell.Offset(1, 0).Select
valor = ActiveCell.Value
indice = 1
Wend
End Sub
Donde dice:
Range ("C2") es donde empieza a verificar.
ActiveCell. Offset(0,1) quiere decir que lo copiará en 1 columna a la derecha. Cambiá ese valor por lo que necesites en las 2 veces que aparece.
Los valores numéricos están entre 48 y 57 en caracteres Ascii, de ahí la comparación.
Con Alt+F11 abrís el Editor, dale doble clic a la hoja que necesites, en le margen izquierdo o vas al menú Insertar/Módulo (por si querés ejecutar la macro desde cualquier hoja) y pegás el código.
Mucha suerte y espero tus comentarios y por supuesto una calificación.
Respuesta
1
Recorre el texto de las celdas de tu rango, y con las función mid, vas cogiendo carácter por carácter de las celdas, y preguntas a cada carácter 'if carácter IsNumeric' si te devuelve false, lo borras.
Suerte

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas