Elimina acentos en tus celdas usando VBA

Última actualización el 07/08/2025
Tiempo de lectura: 4 minutos

El siguiente artículo le presentará una función de VBA que eliminará todos los acentos Palabras en tus celdas. Simplemente llama a la función desde una celda para eliminar espacios.

Código VBA para eliminar acentos

  1. Abra el editor de Visual Basic
Cinta de desarrollador de menús de Visual Basic
  1. Luego abres un Módulo
Insertar un módulo VBA
  1. Copie el siguiente código en el módulo.

Cómo depurar un programa VBA

Si tiene problemas para encontrar la fuente de sus errores de VBA, esta guía le mostrará cómo usar el depurador.

Explicaciones del código

Lo primero que hay que notar es que hemos escrito una función (Función) y no un procedimiento (Sub). De hecho, la diferencia entre un procedimiento y una función es que una función devuelve un resultado. Y este resultado está contenido en el nombre de la función.

Luego, pasamos el contenido de la celda como parámetro y se "lee" cada carácter.

Si el carácter forma parte de la lista de caracteres a reemplazar, se le asigna la letra de reemplazo.

Sin embargo, existe un problema con caracteres muy especiales, como los caracteres ż, ł o ń. De hecho, estos caracteres están más allá de la posición 255 en la clasificación ASCII. sin embargo, ele Editor de Visual Basic, no muestra caracteres más allá del carácter 255. Pero podemos solucionar el problema creando una función en Power Query.

tabla ASCII

Usando en Excel

Llamar a una función personalizada en Excel es extremadamente sencillo. Simplemente escriba el signo igual, como lo haría con una función estándar, e introduzca el nombre de la función personalizada.

=Quitar acento(A2)

Llamar a la función personalizada para eliminar acentos

Y luego, solo queda copiar para las otras celdas para eliminar los acentos.

Quitar acentos

Artículos relacionados

4 Comentarios

  1. Lud
    09/09/2024 a las 23:54

    Hola/Buenas noches Sr. Le Guen,

    Este pequeño error es para agradecerte tu trabajo excepcional, tus tutoriales, cada vez, de excelente calidad.
    Sin exagerar y después de haber consultado numerosos sitios que tratan el tema "Excel", probablemente seas LA referencia en este campo.

    Les agradezco de antemano los próximos vídeos, que (estoy convencido) siempre serán tan informativos como fascinantes.

    Que tengas un buen día/tarde,

    Responder

    • Frédéric LE GUEN
      09/09/2024 a las 23:58

      Muchísimas gracias

      Responder

  2. Sli BEN
    31/03/2024 a las 15:28

    Muchas gracias, esto es muy útil.

    Responder

  3. azertix
    27/11/2022 a las 20:37

    Buenos dias. Intento utilizar tu función pero Excel me da el error "Error de compilación: variable no definida".
    Coloqué la función en un módulo y se llama desde otro procedimiento público ubicado en el mismo módulo.
    Yo lo uso de la siguiente manera:
    [...]
    'Repasamos la lista de clientes
    Para iCount = 3 TB de última liga
    Si wb.Worksheets("Clients").Range("C" & iCount).Value = NOMCli O wb.Worksheets("Clients").Range("C" & iCount).Value = EnleveAccent(NOMCli) O EnleveAccent( wb.Worksheets("Clients").Range("C" & iCount).Value) = NOMCli Luego 'Busca el nombre del cliente en la columna C (con tolerancia en acentos)
    Si wb.Worksheets("Clients").Range("D" & iCount).Value = PnomCli O wb.Worksheets("Clients").Range("D" & iCount).Value = EnleveAccent(PnomCli) O EnleveAccent( wb.Worksheets("Clients").Range("D" & iCount).Value) = PnomCli Luego 'Comprueba que el nombre también coincida (con tolerancia en acentos)
    numCli = iCount 'El número de cliente es igual al número de línea actual
    encontrado = "bien"
    Salir para
    Si terminar
    Si terminar
    Siguiente iCount
    [...]

    Gracias de antemano =)

    Responder

Dejar un comentario

Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.

Jugador Más Valioso de Microsoft 2024

Boletín informativo

1 vez al mes:
Consejos y cuestionarios

    No te enviaremos spam. Puedes darte de baja en cualquier momento.

    Elimina acentos en tus celdas usando VBA

    Tiempo de leer: 4 minutos
    Última actualización el 07/08/2025

    El siguiente artículo le presentará una función de VBA que eliminará todos los acentos Palabras en tus celdas. Simplemente llama a la función desde una celda para eliminar espacios.

    Código VBA para eliminar acentos

    1. Abra el editor de Visual Basic
    Cinta de desarrollador de menús de Visual Basic
    1. Luego abres un Módulo
    Insertar un módulo VBA
    1. Copie el siguiente código en el módulo.

    Cómo depurar un programa VBA

    Si tiene problemas para encontrar la fuente de sus errores de VBA, esta guía le mostrará cómo usar el depurador.

    Explicaciones del código

    Lo primero que hay que notar es que hemos escrito una función (Función) y no un procedimiento (Sub). De hecho, la diferencia entre un procedimiento y una función es que una función devuelve un resultado. Y este resultado está contenido en el nombre de la función.

    Luego, pasamos el contenido de la celda como parámetro y se "lee" cada carácter.

    Si el carácter forma parte de la lista de caracteres a reemplazar, se le asigna la letra de reemplazo.

    Sin embargo, existe un problema con caracteres muy especiales, como los caracteres ż, ł o ń. De hecho, estos caracteres están más allá de la posición 255 en la clasificación ASCII. sin embargo, ele Editor de Visual Basic, no muestra caracteres más allá del carácter 255. Pero podemos solucionar el problema creando una función en Power Query.

    tabla ASCII

    Usando en Excel

    Llamar a una función personalizada en Excel es extremadamente sencillo. Simplemente escriba el signo igual, como lo haría con una función estándar, e introduzca el nombre de la función personalizada.

    =Quitar acento(A2)

    Llamar a la función personalizada para eliminar acentos

    Y luego, solo queda copiar para las otras celdas para eliminar los acentos.

    Quitar acentos

    Artículos relacionados

    Boletín informativo

    1 vez al mes:
    Consejos y cuestionarios

      No te enviaremos spam. Puedes darte de baja en cualquier momento.

      4 Comentarios

      1. Lud
        09/09/2024 a las 23:54

        Hola/Buenas noches Sr. Le Guen,

        Este pequeño error es para agradecerte tu trabajo excepcional, tus tutoriales, cada vez, de excelente calidad.
        Sin exagerar y después de haber consultado numerosos sitios que tratan el tema "Excel", probablemente seas LA referencia en este campo.

        Les agradezco de antemano los próximos vídeos, que (estoy convencido) siempre serán tan informativos como fascinantes.

        Que tengas un buen día/tarde,

        Responder

        • Frédéric LE GUEN
          09/09/2024 a las 23:58

          Muchísimas gracias

          Responder

      2. Sli BEN
        31/03/2024 a las 15:28

        Muchas gracias, esto es muy útil.

        Responder

      3. azertix
        27/11/2022 a las 20:37

        Buenos dias. Intento utilizar tu función pero Excel me da el error "Error de compilación: variable no definida".
        Coloqué la función en un módulo y se llama desde otro procedimiento público ubicado en el mismo módulo.
        Yo lo uso de la siguiente manera:
        [...]
        'Repasamos la lista de clientes
        Para iCount = 3 TB de última liga
        Si wb.Worksheets("Clients").Range("C" & iCount).Value = NOMCli O wb.Worksheets("Clients").Range("C" & iCount).Value = EnleveAccent(NOMCli) O EnleveAccent( wb.Worksheets("Clients").Range("C" & iCount).Value) = NOMCli Luego 'Busca el nombre del cliente en la columna C (con tolerancia en acentos)
        Si wb.Worksheets("Clients").Range("D" & iCount).Value = PnomCli O wb.Worksheets("Clients").Range("D" & iCount).Value = EnleveAccent(PnomCli) O EnleveAccent( wb.Worksheets("Clients").Range("D" & iCount).Value) = PnomCli Luego 'Comprueba que el nombre también coincida (con tolerancia en acentos)
        numCli = iCount 'El número de cliente es igual al número de línea actual
        encontrado = "bien"
        Salir para
        Si terminar
        Si terminar
        Siguiente iCount
        [...]

        Gracias de antemano =)

        Responder

      Dejar un comentario

      Su dirección de correo electrónico no será publicada. Los campos necesarios están marcados con *

      Este sitio usa Akismet para reducir los no deseados. Obtenga más información sobre cómo se procesan sus datos de comentarios.