Hola a todos!
Hoy voy a escribir un post sobre VBA … sí, lo estáis oyendo bien. Después de varias semanas (meses) con Typescript vuelvo hoy con un poco de código amigo.
Y no es otro tema que el de eliminar tildes mediante una función definida. Sobre este tema ya ha publicado varios post:
- Mediante un procedimiento Sub y fórmula: ELIMINAR TILDE (ACENTO ORTOGRÁFICO) EN EXCEL
- Mediante un procedimiento Sub: ELIMINAR TILDES EN EXCEL CON VBA seleccionando el rango donde aplicar el reemplazo.
- Mediante una UDF: FUNCIÓN PARA ELIMINAR TILDES EN CELDA SELECCIONADA con la función Replace
Y por supuesto, tenéis está función también programada en:
- Power Query: FUNCIÓN PARA ELIMINAR TILDES EN EXCEL CON POWER QUERY
- Python: FUNCIÓN PARA ELIMINAR TILDES EN EXCEL CON PYTHON
- Typescript: FUNCIÓN PARA ELIMINAR TILDES EN EXCEL CON TYPESCRIPT
Pues hoy, para seguir añadiendo procedimientos a mi colección, os dejo una forma de programar una función utilizando una matriz y otra forma utilizando una cadena (string). Básicamente recorreremos la matriz y la cadena con un loop for para realizar el reemplazo.
No es el forma más eficiente, pero sí una de las más elegantes. Estas son las dos funciones:
Function SIN_TILDES_ARRAY(ByVal Rango As String)
Dim i As Long
cTil = Array("Á", "É", "Í", "Ó", "Ú", "á", "é", "í", "ó", "ú")
sTil = Array("A", "E", "I", "O", "U", "a", "e", "i", "o", "u")
For i = 0 To UBound(cTil)
Rango = Replace(Rango, cTil(i), sTil(i))
Next
SIN_TILDES_ARRAY = Rango
End Function
Function SIN_TILDES_STRING(ByVal Rango As String)
Dim i As Long
cTil = ("Á,É,Í,Ó,Ú,á,é,í,ó,ú")
sTil = ("A,E,I,O,U,a,e,i,o,u")
For i = 0 To UBound(Split(cTil, ","))
Rango = Replace(Rango, Split(cTil, ",")(i), Split(sTil, ",")(i))
Next
SIN_TILDES_STRING = Rango
End Function
Y este es el resultado:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2022/06/FUNCION-PARA-ELIMINAR-TILDES-O-REEMPLAZAR-CARACTERES-CON-VBA.png?resize=957%2C426&ssl=1)
Obviamente, si estamos con un procedimiento Sub siempre la podremos invocar o llamar para hacerla funcionar.
Y también hay que tener en cuenta que el código se puede usar para sustituir toda clase de caracteres, no solo las tildes.
Y esto es todo, espero que sea de utilidad!!.
Os dejo el archivo por lo necesitáis:
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡Muchas gracias!!
Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies
Amigo, excelente forma de poder reemplazar los caracteres con tildes. Me sirvió!
Tengo 4 años de experiencia programando en VBA y me gusta siempre ver otros tipos de codigos para diferentes aplicaciones.
Amigo tengo una duda, que quizas no he entendido muy bien.
Quisiera saber la sentencia «ByVal» para que se usa o que funcion tiene dentro de una estructura de codigo en VBA.