Detectar si hay caracteres raros o acentos en texto excel

Tengo una base de datos que me da error cuando intento encontrar un texto en un campo, independientemente de si está acentuado o no y me da la sensación de que hay algún carácter raro en algún texto.

¿Hay alguna fórmula que me encuentre todos los caracteres raros de un texto?

2 Respuestas

Respuesta
1

Te dejo una macro que recorre un rango (*) y comenta (**) si encuentra un caracter raro (***)

El código se coloca en un módulo del Editor. Y se ejecuta a pedido, es decir llamandola desde el menú Macros, algún botón o antes de algún otro proceso.

A continuación del código dejo algunas aclaraciones según lo que desees revisar.

Sub avisoCharacters()
'x Elsamatilde
Dim i As Integer, a As Integer, canti As Integer
Dim dato As String
Dim asci
'recorre la col A a partir de la fila 3 hasta la última ocupada. AJUSTAR RANGO (*)
For i = 3 To Range("A" & Rows.Count).End(xlUp).Row
    'se guarda en 1 variable el contenido de la celda, sin espacios delante ni al final
    dato = Trim(Range("A" & i).Text)
    'se recorre cada caracter del dato
    For a = 1 To Len(dato)
         asci = Asc(Mid(dato, a, 1))
         'se evalúa si el caracter se encuentra en el rango de los 'extraños' (***)
         Select Case asci
             Case Is < 48 And asci <> 32  'se permite el espacio entre palabras
                canti = canti + 1
            Case 58 To 64
                canti = canti + 1
             Case 91 To 96
                canti = canti + 1
            Case 123 To 163
                canti = canti + 1
            Case Is > 165
                canti = canti + 1
        End Select
    Next a
    'si hubo caracteres no deseados enviará un mensaje (**)
    If canti > 0 Then
        MsgBox "La celda " & Range("A" & i) & " contiene " & canti & " caracteres extraños"
        canti = 0
    End If
Next i
MsgBox "Fin del proceso."
End Sub

(*)  Si no vas a recorrer el rango, en lugar de recorrer el bucle For i = 3 solamente indicarás la celda a revisar.

(**) ¿Cómo quieres que te informe si la celda tiene caracteres extraños? Puede ser un Msgbox, o colocando en otra celda de la misma fila todos los caracteres encontrados u otras opciones. Aquí solamente envía un mensaje indicando la celda y la cantidad de caracteres raros encontrados.

(***) Hay muchos sitios de donde se puede descargar la tabla de caracteres. En el Select Case estoy omitiendo los no permitidos. Pero esto puede diferir en algunas fuentes o versiones. En mi equipo las ñ Ñ se encuentran con otro número (ver imagen). Revisa que los rangos de ASCII sean los que quieras rechazar.

En la col D coloqué la fórmula: =CARACTER(C4) y así pude comprobar que las Ñ en mi equipo no correspondían a los valores de la lista.

No olvides comentar si la respuesta te ha ayudado a resolver en parte tu consulta.

PD) En el video Nº 56 de mi canal dejé un ejemplo de cómo obtener parte de un texto, quizás pueda ser útil también.

Elsa, muchas gracias por tu ayuda, es justo lo que necesitaba, solo que, como no soy muy conocedor del Vba en Excel, no se como hacer para que me escriba en otra columna el o los caracteres raros que encuentre.

Si pudieras perdonar mi torpeza en este tema y decirme como hacerlo, te estaría mas agradecido aun.

Un saludo

Buenos dias Elsa.

Aunque no estoy muy ducho en vba Excel, con paciencia  he conseguido mostrar el valor encontrado.

Muchas gracias por tu ayuda, me ha resuelto perfectamente el problema que tenia.

No se porqué no me deja enviar nuevo código... escribime a mi correo que aparece en mi sitio.

Sdos!

Te paso la macro ajustada, si puedo. La lista de caracteres especiales se coloca en la col F de la misma fila, separando los caracteres con un espacio. (Ajusta esta letra a tu modelo). Aquí inhabilité las instrucciones que cuentan la cantidad de caracteres especiales que hay en cada celda y el mensaje. Pero si te sirve mantener también esta información quitale la comilla inicial a cada instrucción que se refiere a 'canti'.

Respuesta
1

I. Hola Jesús, por mi parte sólo soy lector habitual pero vi el siguiente aporte de un experto que quisiera trasladarle:


- Guarde el archivo exportado como CSV.
- Abra Excel.
- Importe los datos mediante Datos-->Importar datos externos--> Importar datos.
- Seleccione el tipo de archivo "CSV" y busque el archivo.
- En el asistente de importación, cambie el valor de Origen del archivo a "65001 UTF" (o elija el identificador de caracteres del idioma correcto).
- Cambie el Delimitador a una coma.
- Seleccione la ubicación de la importación y haga clic en Finalizar.

- De esta forma, los caracteres especiales se mostrarán correctamente.


Asímismo también podría pienso utilizar la función ''Regexreplace''.

https://help.highbond.com/helpdocs/analytics/142/scripting-guide/es/Content/lang_ref/functions/r_regexreplace.htm 

https://es.stackoverflow.com/questions/339155/replace-de-caracteres-especiales-usando-expresi%C3%B3n-regular 


Quisiera trasladarle la información que vi sobre su consulta por si pudiese serle de alguna utilidad mientras le atiende un experto en Excel de primera mano, el que podríamos tratar de invocar en caso de que no recibiese una respuesta durante la próxima semana.

Le ruego me disculpe por todas las molestias de lectura y el tipo de respuesta. Mucho ánimo.


https://jldexcelsp.blogspot.com/2008/07/quitar-acentos-tildes-de-un-texto-en.html

https://stackoverflow.com/questions/6002256/is-it-possible-to-force-excel-recognize-utf-8-csv-files-automatically

https://www.reddit.com/r/excel/comments/1eyjumi/how_do_i_search_for_cells_that_contain_any_type/

https://www.expania.es/como-cargar-titulos-con-caracteres-especiales-acentos-n-etc/

https://ayudaexcel.com/foro/topic/45129-macro-quita-caracteres-especiales/

https://es.stackoverflow.com/questions/283344/eliminar-caracteres-especiales-en-excel

https://worddreams.wordpress.com/2012/07/24/tech-tip-for-writers-67-how-to-add-accents-and-more/

https://es.extendoffice.com/documents/excel/4912-excel-replace-tilde-wildcard.html

https://eltiotech.com/eliminar-tildes-acentos-caracteres-especiales-excel/

https://www.youtube.com/watch?v=ZJDr9g9ihlc

https://stackoverflow.com/questions/77429827/search-for-names-with-accents

https://www.reddit.com/r/excel/comments/1enxlf4/excel_web_how_to_convert_accented_characters_into/?tl=es-419

https://www.youtube.com/watch?v=osShLH4pGNY

https://www.reddit.com/r/excel/comments/1d1u2tu/mass_replace_special_characters_trema_accents_etc/ 

https://www.perucontable.com/excelcontable/como-quitar-acentos-en-excel/

https://support.knowbe4.com/hc/es-es/articles/360041788374--Por-qu%C3%A9-no-se-muestran-los-caracteres-especiales-de-mi-archivo-CSV-en-Microsoft-Excel

https://www.mrexcel.com/board/threads/replacing-accented-characters-with-non-accented-equivalents.266749/

https://quizandsurveymaster.com/getting-excel-properly-show-accented-characters/

https://www.reddit.com/r/excel/comments/10pc5jx/replace_all_special_characters_with_accentsdots/?tl=es-es

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas