Megaguía: Los nombres en Excel

nombres excel

En Excel, un nombre es un conjunto de celdas determinado al que se le ha asignado un nombre (valga la redundancia). Esto te ayudará muchísimo a trabajar con tus hojas de cálculo de forma más fácil y eficiente, especialmente a la hora de crear fórmulas. Es mucho más sencillo mencionar (y recordar) un nombre que una referencia de celdas.

En esta megaguía no sólo aprenderás a crear nombres. Te enseñaré distintas formas de utilizarlos para que les saques el máximo partido, verás ejemplos prácticos y aprenderás a guardarlos y administrarlos para tenerlos siempre disponibles.

Trabajar con nombres en lugar de con rangos de celdas es uno de esos trucos que te hacen ser más eficiente, y en esta megaguía te doy todas las claves para que aprendas a usarlos desde hoy mismo.

¡Descarga gratis tu megaguía en PDF rellenando el formulario y empieza a mejorar tus fórmulas! ????

INFORMACIÓN BÁSICA SOBRE PROTECCIÓN DE DATOS

Responsable: Sergio Andrés Celemín

Finalidad: Envío de documentación y suscripción a newsletter..

Legitimación: Consentimiento del interesado.

Destinatarios: Tus datos se encuentran alojados en mi hosting Hetzner Online GmbH.

Duración: mientras dure la relación contractual o 12 meses desde el último mensaje
enviado.

Derechos: Puedes ejercitar en cualquier momento tus derechos de acceso,
rectificación, supresión, oposición y demás derechos legalmente establecidos a
través del email sergio@ayudaexcel.com.

Información adicional: Encontrarás más información en la política de privacidad.

Respuestas

  1. Hola:
    Me ha gustado tu articulo sobre los nombres porque habia cosas que no conocia de su uso, como la posibilidad de usarlo en rangos dinamicos usando referencias relativas en vez de absolutas; seguro que lo probare.

    Yo hace años confeccione una hoja de excel para el calculo de un cuadro de amortizacion de prestamos, y use un nombre que no has comentado aqui; se trata del nombre “Área_de_impresión” que se crea automaticamente cuando fijas un area de impresion en el menu de configrar pagina. El uso que yo le di es hacerlo como un rango dinamico que se recalcula cuando se modifican las celdas que hacen que el cuadro de amortizacion cambie su longitud; para ello cree una macro haciendo uso de la funcion “Union” que fija el rango de impresion del cuadro de amortizacion.
    La formula completa es la siguiente:
    If Union(Target, Range(“años”)).Address = Range(“años”).Address Then
    Worksheets(“Cuadro amortizacion”).PageSetup.PrintArea = Range(Cells(1, 1), Cells(Range(“cuotas”) + 7, 12)).Address
    End If
    El nombre “años” hace referencia a los años de amortizacion del prestamo, que logicamente si se modifican afectará al area de impresion de la tabla de amortizacion. Y el nombre “cuotas” tiene el calculo del total de cuotas a pagar que por ende seran las lineas finales que tendra el rago final. Los numeros que sumo son por la propia configuracion de las filas y columnas para que solo salga la informacion que necesito.
    Cada vez que se modifican los años del prestamo, el area de impresion se adapta al total de cuotas para no tener que imprimir hojas de mas.
    Espero os sea de utilidad. Saludos
    Espero

    1. Hola, Carlos! Te agradezco tu sugerencia.

      La verdad es que nunca se me ha presentado la oportunidad de hacer que el área de impresión sea dinámica, pero me parece muy buena idea que no se me había ocurrido…

      Si tuviera que utilizar tu aporte traduciría la macro que propones en una fórmula de hoja. Siempre que puedo evito utilizar VBA.

      Gracias de nuevo.

  2. Hola Sergio buenas tardes

    Amigo, una consulta:

    Tengo un archivo el cual lo estoy manejando con macros, solo pesa 2.336 KB, pero usa muchas formulas, si se puso extremadamente lento al ejecutar cualquier macro, incluso sin ejectura macros, al hacer cuanquier modificaión o cálculo en alguna de las hojas, se tarda demasiado.

    Cómo pudeira mejorar el tiempo en la ejecución de las rutinas.

    Saludos desde Venezuela
    William

    1. Hola, William!
      Seguramente podrás sustituir muchas de las fórmulas por un nombre.
      Trata de crear una fórmula que sirva para todas las celdas prestando atención a los tipos de referencias que utilizas en las celdas.
      Eso te acelerará mucho el libro.

  3. En el código tendrías que cambiar el nombre “Área_de_impresión”, que es el que aparece en la lista de nombres en español, por el texto “Print_Area”, que es el que se debe utilizar en el editor de Visual. Este último tiene exactamente 10 caracteres de longitud que son los que se comparan con Right(Nombre.Name, 10).

  4. Mil gracias Sergio. Excelente código para “Eliminar nombres con VBA”. Le adicioné antes de la linea “On Error GoTo Salta”, el código “On Error GoTo -1”, es decir lo ajuste, así:
    On Error GoTo -1 ‘(Controla la opción de error si se presenta nuevamente)
    On Error GoTo Salta

  5. muy agradecido por su aporte
    Existe un modo de asignarle un nombre a una celda que sea el contenido de la misma? tomando en cuenta que pueden existir mas de una celda con el mismo contenido, como seria el codigo vba?
    ejemplo: celda: A1; contenido: martín; Nombre: martín
    celda: A5; contenido: martín; Nombre: martin2
    donde el nombre sea asignado automáticamente por la macro

    1. Hola Martín!
      No hace falta una macro para hacer lo que deseas. Utiliza la herramienta Crear desde la selección. Previamente debes seleccionar las celdas a las que quieras dar nombre. Si se trata de una única columna debes duplicarla y seleccionar ambas antes de utilizar Crear desde la selección.

  6. Hola,

    Al hacer pruebas con los nombres definidos me encuentro que no se puede hacer un:

    Range(“Leon”).Select
    o
    Range(“Leon”).Activate

    desde otra hoja, sólo si estoy en la hoja, o activo la hoja, donde esta declarado el Rango con Nombre. Son Nombres de Ámbito de Libro

    Hoja1.Activate
    Range(“Leon”).Select
    o
    Hoja1.Activate
    Range(“Leon”).Activate

    Si funcionan.

    Pero si puedo usar: Msgbox Range(“Leon”).Address
    desde cualquier Hoja.

    Me da curiosidad ya que como a veces son rangos dinámicos, ya no están en el “Cuadro de Nombres” y para verificar que este considerando todos los datos a veces recurro a esto y me sale ERROR 1004, En el método Activate de la clase Range.

    Es un Bug?

    – O es mi Office ?
    – O en otra versión más actual lo corrigieron?

    Yo uso Office 2016, Win 32

    Lo provee en varias máquinas.

    Saludos.

    1. Hola Leopoldo!
      Pues tienes razón… es curioso. Nunca me había sucedido porque siempre utilizo la referencia a la hoja, pero tendré que investigar esto.
      ¡Gracias por el aviso!

  7. Definitivamente excelente ejemplo, he estado necesitando esto para eliminar cantidades inmensas de nombres de rangos con errores (#!REF!), cuando re-utilizo hojas de otros libros, proceso que con el administrador de nombres es demasiado largo y tedioso por lo que es manual y uno a uno .- Gracias Maestro por enseñar y compartir conocimientos.

Los comentarios están cerrados.