Macro

Me podrías ayudar con una macro que elimine datos no numéricos incluyendo espacios

1 respuesta

Respuesta
1
Asumiré que donde quieres eliminar datos no numéricos es una cadena de caracteres en una celda determinada.
Para ello, efectivamente, puedes usar una macro, pero me parce más interesante una Función Definida por el Usuario (UDF) que devuelva en otra celda el resultado de la eliminación.
Activa el editor de Visual Basic (presiona Alt+F11), inserta un nuevo módulo ("Insertar", "Módulo") y pega el siguiente código:
Function dejaNum(LaCelda As String) As Long
Application.Volatile
Texto = Trim(LaCelda)
Cadena = ""
If Len(Texto) > 0 Then
For posicion = 1 To Len(Texto)
Carakter = Mid(Texto, posicion, 1)
If IsNumeric((Carakter)) Then
Cadena = Cadena & Carakter
ElseIf Carakter = Application.International(xlDecimalSeparator) Then
Cadena = Cadena & Application.International(xlDecimalSeparator)
End If
Next
End If
If Len(Cadena) = 0 Then
dejaNum = 0
Else
dejaNum = Cadena
End If
End Function
Cierra el editor y graba el archivo.
Bien, ahora tu archivo dispone de una fórmula más que devuelve en una celda el número depurado de caracteres que no lo sean.
Así si el texto a depurar está en la celda B2, escribe en otra celda, lo siguiente:
=DEJANUM(B2)
Y obtendrás el resultado esperado.
Al ser una fórmula, puedes tratarla como tal. Esto es puedes copiarla para otras celdas, liuego pegarla como valor, etc.
---
Sin embargo, si deseas realmente una macro, la siguiente deja en la celda donde se está ejecutando (celda activa) el resultado depurado, "pisando" el valor original:
Sub deja()
LaCelda = ActiveCell.Value
Texto = Trim(LaCelda)
Cadena = ""
If Len(Texto) > 0 Then
For posicion = 1 To Len(Texto)
Carakter = Mid(Texto, posicion, 1)
If IsNumeric((Carakter)) Then
Cadena = Cadena & Carakter
ElseIf Carakter = Application.International(xlDecimalSeparator) Then
Cadena = Cadena & Application.International(xlDecimalSeparator)
End If
Next
End If
If Len(Cadena) = 0 Then
MsgBox "No hay Números en esta celda"
Else
ActiveCell.Value = Trim(Cadena)
End If
End Sub
Bien, elije el método que te parezca má apropiado.
- Ingresa al sitio www.porloschicos.com y, si quieres,
presiona el botón de donación (es gratis).
Confío en que lo harás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas