miércoles, febrero 24, 2016

Hacer visibles los nombres definidos en una hoja Excel

Cuando usamos varios nombres en nuestras hojas suele surgir la necesidad de visualizar los rangos a que se refieren los nombres.
El método más inmediato es usar Pegar Nombres-Pegar Lista, que accedemos con la tecla F3


De esta manera obtenemos una lista de los rangos de los nombres, pero si buscamos un método más visual tendremos que echar mano a otras técnicas.

Un viejo y conocido truco es reducir el nivel de zoom en la hoja a menos de 40%

Al hacerlo los nombres aparecen sobre los rangos. Pero este método tiene sus inconvenientes. El tamaño de los nombres se adecua al tamaño del rango, haciendo que alguno de ellos sea ilegible. Además el nivel de zoom dificulta la lectura y el trabajo en la hoja.

La solución que propongo es una macro que ponga un fondo de color al rango del nombre definido e inserte un comentario en la primer celda del rango.

El código de la macro es el siguiente:

 Sub mostrar_nombres()  
   Dim n As Name  
   Dim strNameStart As String  
   For Each n In ActiveWorkbook.Names  
     Range(n.RefersTo).Interior.ColorIndex = 36  
     strNameStart = Left(n.RefersTo, WorksheetFunction.Find(":", n.RefersTo) - 1)  
     With Range(strNameStart)  
       .AddComment   
       .Comment.Text n.Name  
     End With  
   Next n  
 End Sub  

Y este el resultado despues de activar la macro


Si queremos que los comentarios no sean visibles definimos la propiedad Visible como False

 Sub mostrar_nombres()  
   Dim n As Name  
   Dim strNameStart As String  
   For Each n In ActiveWorkbook.Names  
     Range(n.RefersTo).Interior.ColorIndex = 36  
     strNameStart = Left(n.RefersTo, WorksheetFunction.Find(":", n.RefersTo) - 1)  
     With Range(strNameStart)  
       .AddComment  
       .Comment.Text n.Name  
       .Comment.Visible = False  
     End With  
   Next n  
 End Sub  

3 comentarios:

  1. Gracias por su buen ejemplo, yo sólo había visto estos títulos de nombres en las consultas web.
    Saludos.

    ResponderBorrar
  2. Excelente aporte como simepre don Jorge....! Si no fuera mucho pedir... será posible que cada bloque tuviera un color diferente... no importa si es aleatorio al final, solo distinto...?
    Muchas gracias por todo lo que no enseña semana a semana...
    Ronald Mena desde Costa Rica

    ResponderBorrar
  3. Ronald, no es mucho pedir:)
    Habría que agregar una rutina para elegir los colores en forma aleatoria. Veré de publicar algo en breve.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.