Limpiar Datos en hoja completa

Tengo una problemática con uno de mis usuarios tiene que subir por medio de batch un machote de excel, cuando el captura los datos manualmente comete muy pocos errores y son perceptibles, pero cuando se dedica a copiar de otros orígenes (Word, PDF, Excel, XPS) se copian caracteres como saltos de línea, tabulaciones, comas, " $", "%", etc. Que el usuario no ve.

Lo que necesito me ayuden es a crear una macro que revise toda la hoja y me elimine todo aquello que no sea A hasta la Z y 0 Hasta el 9 ni el punto.

1 Respuesta

Respuesta
1

H o l a:

Prueba con la siguiente macro. Ejecuta la macro sobre la hoja que tienes que revisar.

Si falta algún carácter que hay que eliminar me dices cuál es y lo agregamos en la lista. En la lista estoy considerando también, las letras con acento, la ñ, mayúsculas y minúsculas y el punto, si quieres considerar algún otro, también me avisas y lo agrego.

Sub LimpiarDatos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    uf = Range("A1").SpecialCells(xlLastCell).Row
    uc = Range("A1").SpecialCells(xlLastCell).Column
    For Each c In Range("A1", Cells(uf, uc)).SpecialCells(xlCellTypeConstants, 23)
        For i = 1 To Len(c)
            letra = Mid(c.Value, i, 1)
            If letra <> "" Then
                codigo = Asc(letra)
                Select Case codigo
                    Case 48 To 57                '0123456789
                    Case 65 To 90, 97 To 122     'A-Z, a-z
                    Case 225, 233, 237, 243, 250 'á é í ó ú
                    Case 193, 201, 205, 211, 218 'Á É Í Ó Ú
                    Case 32, 241, 209            'barra espaciadora ñ Ñ
                    Case 46                      '.
                    Case Else
                        Range("A1", Cells(uf, uc)).Replace What:=letra, Replacement:="", LookAt:=xlPart
                End Select
            End If
        Next
    Next
    Application.ScreenUpdating = False
    MsgBox "fin"
End Sub


Sigue las Instrucciones para ejecutar la macro
1. Abre tu archivo de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5

Muchas gracias

Eres un maestro en estos menesteres, le aplique unos cambios por que si en la celda encontraba un "%" antecedido por un numero esos los omite, por que al final son numericos (25%, 45000%) y agregue unos pasos personalizados.

pero de vdd muchas gracias ya con esto me ahorras mucha talacha en reprocesos.

Recibe un cordial saludo.
¡Gracias! 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas