El código está bien. Excel lo está bloqueando.
Por qué la función de convertir números a letras devuelve #¿NOMBRE?, desaparece al guardar o ni siquiera aparece — y cómo dejarla funcionando de forma permanente.
Equipo numerosaletras · Actualizado 30 de agosto de 2026 · 10 min de lectura
Lo que aprenderás
- ▸Los tres bloqueos distintos de Excel y cómo saber cuál le toca.
- ▸Por qué la barra roja no trae botón de «Habilitar contenido».
- ▸Qué significa cada error: #¿NOMBRE?, #¡VALOR!, «Sub no definida».
- ▸Cómo dejar la función disponible en todos sus archivos.
- ▸Qué hacer cuando la empresa bloquea las macros y no hay negociación.
01 · respuesta rápida
¿Por qué no funciona la macro?
Nueve de cada diez veces no es el código: es que el archivo se guardó en .xlsx, o llegó de internet y arrastra la Marca de la Web.
Cuando una función de conversión a letras «no funciona», el reflejo es buscar otro código. Casi nunca hace falta. Excel tiene tres capas distintas de bloqueo para las macros, cada una con su propia señal en pantalla, y confundirlas es lo que hace perder la tarde. Esta guía las separa y va al arreglo concreto de cada una. Si todavía no tiene el código, primero páselo por el generador de código para Excel.
Conviene decirlo de entrada: los síntomas se parecen mucho entre sí, pero las causas no tienen nada que ver. Una se arregla con un clic dentro de Excel, otra fuera de Excel —en las propiedades del archivo, en el explorador de Windows— y la tercera no se arregla en absoluto si su equipo lo administra otra persona. Saber en cuál está es la mitad del trabajo.
02 · el motivo
Por qué Excel desconfía.
Una macro no es una fórmula: es un programa completo, con los mismos permisos que la persona que abre el archivo. Puede leer carpetas, borrar archivos y abrir conexiones. Durante años, la vía más rentable para distribuir software malicioso fue exactamente esta —una hoja de cálculo adjunta en un correo, con una macro dentro— y de ahí viene toda la desconfianza que hoy encuentra usted en el camino.
El punto de inflexión llegó en 2022. Hasta entonces bastaba con la barra amarilla y su botón de «Habilitar contenido»: molesto, pero un clic. El problema es que la gente pulsaba el botón por costumbre, sin mirar. Así que Microsoft cambió el trato para los archivos que vienen de fuera del equipo: si el archivo llegó de internet, del correo o de una unidad de red, sus macros quedan bloqueadas y no se ofrece ningún botón.
Ese cambio es la razón de que tantas guías de hace unos años ya no sirvan. Dicen «pulse Habilitar contenido» y en su pantalla no hay nada que pulsar. El botón no está escondido ni falta un permiso: sencillamente ya no existe para ese archivo, y la solución está fuera de Excel.
03 · diagnóstico
Los tres bloqueos, por su señal.
Antes de tocar nada, mire qué aparece al abrir el archivo. La señal identifica el bloqueo, y el bloqueo determina el arreglo. Van del más leve al más terco.
01
Barra amarilla con el botón «Habilitar contenido»
El archivo tiene macros y Excel espera su permiso. Es el caso benigno.
Pulse «Habilitar contenido» una vez. Excel recuerda la decisión para ese archivo.
02
Barra roja, sin ningún botón que pulsar
El archivo viene de internet o del correo y arrastra la Marca de la Web. Desde 2022 Excel bloquea sus macros de plano, y por eso no hay botón.
Cierre Excel. Clic derecho sobre el archivo → Propiedades → pestaña General → marque «Desbloquear» abajo → Aceptar. Vuelva a abrirlo.
03
Ninguna barra, ningún aviso, la función simplemente no existe
El Centro de confianza tiene desactivadas todas las macros sin notificación, casi siempre por política de la empresa.
Archivo → Opciones → Centro de confianza → Configuración → Configuración de macros. Si está gris, la bloquea su administrador: use la vía sin macros.
Un detalle del segundo caso que despista mucho: el desbloqueo hay que hacerlo con el archivo cerrado, y es una propiedad del archivo concreto, no de la carpeta. Si baja una copia nueva mañana, vuelve a llegar bloqueada. Cuando esto se repite a diario, lo que corresponde es declarar la carpeta como ubicación de confianza, no desbloquear archivo por archivo.
04 · mensajes
Qué le está diciendo cada error.
Si las macros ya están habilitadas y la función sigue sin dar el resultado, el mensaje de la celda dice bastante más de lo que parece.
| Lo que ve | Causa | Qué hacer |
|---|---|---|
| #¿NOMBRE? | Excel no reconoce la función | Las macros están desactivadas, el nombre está mal escrito, o la función vive en otro libro que ahora está cerrado. |
| La función desapareció al reabrir | El archivo se guardó como .xlsx | El formato .xlsx no admite macros y Excel las descarta al guardar, con un aviso fácil de pasar por alto. Guarde como .xlsm. |
| Error de compilación: Sub o Function no definida | Falta parte del código | Se pegó el código a medias, o falta una función auxiliar a la que llama la principal. Pegue el bloque completo. |
| Símbolos raros donde van las tildes | Codificación del editor VBA | Guarde el módulo, cierre y vuelva a abrir el editor. Suele asentarse a la segunda. |
| Funciona en un libro y en otro no | La función está en ese libro | Una función en un módulo normal solo existe en su propio archivo. Para tenerla en todos, va en Personal.xlsb o en un complemento. |
| #¡VALOR! | La celda no contiene un número | Hay texto, un espacio invisible o un número guardado como texto. Compruebe con ESNUMERO(). |
El primero de la lista es, con diferencia, el más frecuente, y también el más engañoso: #¿NOMBRE? no significa que el código esté mal escrito, sino que Excel no encuentra ninguna función con ese nombre. Es el mismo error que da al escribir «=SUMMA(A1:A9)». La pregunta correcta no es «¿qué tiene mal el código?» sino «¿por qué Excel no lo ve?».
05 · errores de método
Cinco costumbres que lo rompen.
Más allá de los mensajes de error, hay cinco formas de trabajar que garantizan volver a tener el problema la semana que viene.
— Guardar el archivo como .xlsx «porque es el normal»
+ Guardar como .xlsm (Libro habilitado para macros)
Es el error número uno. El .xlsx descarta el código al guardar y el trabajo se pierde en silencio.
— Bajar un .xlsm de un foro y abrirlo directamente
+ Desbloquear el archivo en Propiedades antes de abrirlo
Con la Marca de la Web, Excel ni siquiera ofrece el botón de habilitar. Parece que el código está roto y solo está bloqueado.
— Pegar el código dentro de «Hoja1» o «EsteLibro»
+ Insertar → Módulo, y pegarlo ahí
En la hoja o en el libro, la función no se publica como función de hoja de cálculo y no aparece al escribir «=».
— Bajar el nivel de seguridad a «Habilitar todas las macros»
+ Dejar el aviso y usar una ubicación de confianza
Esa opción abre la puerta a cualquier macro de cualquier archivo. Una carpeta declarada de confianza consigue lo mismo sin desarmar la protección.
— Reenviar el .xlsm por correo a diez compañeros
+ Distribuir un complemento .xlam, o usar la vía sin macros
Cada copia llega bloqueada y cada persona tiene que repetir el desbloqueo. Y una copia corregida ya no se sincroniza con las demás.
06 · de una vez por todas
Que la función esté siempre ahí.
Una función pegada en un módulo vive dentro de ese archivo y solo de ese archivo. Es la razón de que funcione en la hoja de ayer y no en la de hoy, y de que acabe uno pegando el mismo código por décima vez. Si convierte importes a letras con cierta frecuencia, merece la pena instalarla una vez y olvidarse.
La vía para uso propio es el libro de macros personal, Personal.xlsb: un archivo oculto que Excel abre en cada sesión. Se crea grabando una macro cualquiera con la opción «Guardar en: Libro de macros personal», y desde ese momento el código que ponga en sus módulos está disponible en todas sus hojas, nuevas y viejas, sin volver a pegarlo.
Para un equipo, lo que corresponde es un complemento .xlam: el código se guarda como complemento, cada persona lo activa una vez desde Opciones → Complementos, y la función queda instalada en su Excel, no en un archivo suelto que circula por correo. Tiene la ventaja de que una corrección se distribuye actualizando un solo archivo, en vez de perseguir copias.
En los dos casos la regla del formato sigue mandando: los libros donde use la función se guardan en .xlsm. El complemento resuelve dónde vive el código, no en qué formato guarda usted su trabajo.
07 · cuando no hay macros
Los cuatro entornos sin salida.
Hay situaciones en las que ninguna de las soluciones anteriores aplica, y reconocerlas a tiempo ahorra horas de intentos. En estas cuatro, la macro no va a funcionar por mucho que insista.
▸ excel en el navegador
La versión web no ejecuta VBA en absoluto. Abre el archivo y muestra los datos, pero el código no corre.
▸ política de empresa
Si la opción del Centro de confianza aparece en gris, la decide un administrador. No hay ajuste local que la sobrescriba.
▸ libreoffice calc
Tiene su propio Basic y una compatibilidad parcial con VBA, pero una función de conversión con acentos y concordancias rara vez sobrevive al trasplante sin retoques.
▸ archivos compartidos en la nube
Un libro que varias personas editan a la vez en el navegador vuelve al primer caso: el código está, pero nadie lo ejecuta.
En los cuatro casos la salida es la misma y no pasa por VBA: una función LAMBDA, que hace la conversión con fórmulas nativas, vive dentro del propio archivo y viaja con él sin disparar ningún bloqueo. El generador de código produce esa versión además de la macro.
Y para un importe suelto —el de una factura, el de un cheque— montar cualquiera de las dos es desproporcionado: el conversor de números a letras da el resultado en el momento, con las mismas reglas de apócope y concordancia.
08 · preguntas
Preguntas frecuentes.
-
Q01
¿Por qué Excel dice que bloqueó las macros y no me deja habilitarlas?
Porque el archivo llegó de internet, del correo o de una unidad de red y trae la llamada Marca de la Web. Desde 2022 Microsoft bloquea las macros de esos archivos de forma predeterminada, y a diferencia del aviso amarillo de siempre, este no ofrece botón para habilitarlas: por eso parece que no hay salida. La hay, pero está fuera de Excel: cierre el archivo, clic derecho, Propiedades, y marque «Desbloquear» en la parte inferior de la pestaña General.
-
Q02
¿Qué significa el error #¿NOMBRE? al usar la función?
Que Excel leyó la fórmula pero no sabe qué función es esa. Hay tres motivos posibles, en este orden: las macros están desactivadas, el nombre está mal escrito, o la función está en otro libro que en este momento no está abierto. Descarte los tres y el error desaparece; si sigue, revise que el código esté en un módulo y no en la hoja.
-
Q03
¿Por qué la función desaparece cuando cierro y vuelvo a abrir el archivo?
Casi seguro se guardó como .xlsx. Ese formato no admite código, así que Excel lo descarta al guardar; sí avisa, pero con un cuadro de diálogo que casi todo el mundo acepta sin leer. La solución es Guardar como → Libro de Excel habilitado para macros (.xlsm). Si ya lo perdió, hay que volver a pegar el código: no se recupera.
-
Q04
¿Cómo hago que la función esté disponible en todos mis archivos?
Poniéndola en el libro de macros personal, Personal.xlsb, que Excel abre oculto en cada sesión. Se crea grabando una macro cualquiera con la opción «Guardar en: Libro de macros personal», y a partir de ahí el código que ponga en sus módulos vive en todas sus hojas. La alternativa, si tiene que repartirla a más gente, es un complemento .xlam.
-
Q05
¿Es peligroso activar las macros?
Depende enteramente de dónde venga el código. Una macro es un programa con los mismos permisos que usted, así que puede leer y borrar archivos. Por eso el consejo no es «no active nunca» sino «lea el código antes». Un código de conversión a letras son unas decenas de líneas de texto y números, sin instrucciones de red ni de sistema de archivos; si ve algo que abre conexiones o toca carpetas, no lo ejecute.
-
Q06
¿Qué es una ubicación de confianza y por qué conviene más que bajar la seguridad?
Es una carpeta que usted declara segura: los archivos que estén dentro abren sus macros sin avisos, y todo lo de fuera sigue protegido. Se configura en Archivo → Opciones → Centro de confianza → Configuración → Ubicaciones de confianza. Es mejor que la opción de habilitar todas las macros, que quita la protección para cualquier archivo que llegue de cualquier sitio.
-
Q07
Mi empresa tiene las macros bloqueadas por política. ¿Me queda alguna opción?
Sí, y no pasa por convencer a sistemas. Las funciones LAMBDA hacen la conversión sin una sola línea de VBA, viven dentro del propio archivo y viajan con él sin disparar ningún bloqueo. La página del generador de este sitio produce esa versión además de la macro. Para un importe suelto, el conversor de la portada es más rápido que cualquiera de las dos.
-
Q08
¿Puedo pasar el archivo con la macro a un compañero?
Puede, pero llegará bloqueado: al viajar por correo o por la red, el archivo recibe la Marca de la Web y su compañero verá la barra roja. Tendrá que desbloquearlo en Propiedades igual que usted. Si son varias personas, sale mejor repartir un complemento .xlam instalado una vez, o directamente la versión LAMBDA, que no tiene este problema.
-
Q09
¿Funciona igual en Excel para Mac?
El VBA existe en Excel para Mac y una función de conversión a letras corre sin problema, pero el entorno cambia: el editor se abre desde Herramientas → Macro → Editor de Visual Basic, no hay Personal.xlsb con el mismo nombre y los permisos de archivo del sistema piden confirmación aparte. Lo que no cambia es la regla del formato: hay que guardar en .xlsm.
-
Q10
¿Y en Excel para la web?
Ahí no hay solución posible con macros: la versión web no ejecuta VBA en absoluto. Puede abrir un .xlsm y ver los datos, pero el código no corre y la función devuelve error. Si trabaja en el navegador, las opciones reales son la fórmula LAMBDA o convertir el importe en el conversor y pegar el resultado.
-
Q11
¿Por qué la macro tarda tanto en una hoja con miles de filas?
Porque una función personalizada en VBA se evalúa fila a fila y es varios órdenes de magnitud más lenta que una función nativa. Con unas pocas celdas no se nota; con veinte mil, sí. El truco habitual es convertir una vez y luego pegar el resultado como valores, para que la hoja deje de recalcular texto que ya no va a cambiar.
Primero el bloqueo, después el código.
Antes de cambiar de macro, compruebe el formato del archivo y la Marca de la Web: ahí está la mayoría de los casos. Si el entorno no admite macros, la versión LAMBDA hace lo mismo sin pedir permiso a nadie.
Generar el código para Excel →