¿Como puedo crear una macro para dar nombres automáticamente a rangos en distintas partes de la hoja y cómo hago que se detenga?

Para ElsaMatilde:

¿Cómo puedo crear una macro para dar nombres automáticamente a rangos y celda en distintas partes de una hoja, y cómo hago que se detenga al alcanzar una celda determinada?

Es para aplicar a hoja en la cual me ayudo a hacer un listado.

1 Respuesta

Respuesta
1

En libro de consulta anterior habrás visto que las fórmulas hacen mención a rangos numerados a partir de 1:

Entonces hay que crear 3 nombres de rango por cada tabla. Que como se encuentran a cierta distancia y esa distancia se respeta entre todas las tablas (verificar) entonces la macro utiliza variables que se incrementan respetando esas distancias.

En un módulo del Editor colocá este código. La macro iniciará en la 3er tabla ya que las anteriores ya cuentan con estos nombres de rango. Y fue desarrollada para el modelo de tu hoja.

Sub CreaNbres()
'x Elsamatilde
'Macro crea nbres de rangos en tablas
    filx = 3      'tabla 3 = J3
    colx = 10
    Z = 200          'ultimo nro de tabla
For i = 3 To Z
    Cells(filx, colx).Select
    With Sheets("Composición de precios")
        ActiveWorkbook.Names.Add Name:="titu" & i, RefersToR1C1:=.Cells(filx, colx)
        ActiveWorkbook.Names.Add Name:="suma" & i, RefersToR1C1:=.Range(Cells(filx + 2, colx + 1), Cells(filx + 19, colx + 1))
        ActiveWorkbook.Names.Add Name:="toti" & i, RefersToR1C1:=.Cells(filx + 22, colx + 1)
    End With
    colx = colx + 4  'si el nro de col pasa la col Q se pasa a tabla sgte en col B
    If colx > 14 Then
        colx = 2: filx = filx + 25
    End If
Next i
End Sub

PD) Si creaste algún otro nombre manualmente, de estos numerados, tenés que eliminarlos antes de correr la macro. Verificá los nombres desde menú Formulas, Administrador de nombres.

Te recuerdo que la consulta sigue abierta... a la espera de tu valoración para cerrarla.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas