Manejar Rangos dinámicos en excel

Tengo esta tabla en donde tengo rangos con nombres. En F2 tomo la lista de la columna DE, y en G2 una lista con un INDIRECTO en donde me permite seleccionar los nombres de las personas pertenecientes a cada grupo, es decir, que si en F2 selecciono dos, en G2 solo me motrará los nombres de Camila Juana y Manuel. El problema viene cuando ingreso un nuevo nombre a la lista ej: Laura con por documento y grupo UNO.

En el admin de nombres los grupos son: UNO(A2:A4), DOS(A5:A7), TRES(A8:A10), si ingreso a Laura el rango UNO se mantiene de (A2:A4) pero a Laura no la incluye en este rango. Como hago para que el rango se amplíe automáticamente teniendo en cuenta el valor de la columna C. Necesito que este nuevo ingreso al grupo UNO sea incluido dentro del rango.

Respuesta
1

¿No es posible ponerlos nombres de cada grupo en una columna diferente?

No señor, no es posible, la lista real tiene tiene más de 300 personas y 16 grupos. Agradezco si alguien me puede ayudar.

En ese caso deberemos recurrir a VBA

En la hoja donde tengas los datos pones esta macro asociada al evento Worksheets_change

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("F2")) Is Nothing Then
Dim ws As Worksheet
Dim range1 As Range, rng As Range
Set ws = ThisWorkbook.Worksheets("Hoja1")
Application.Volatile
Set range1 = ws.Range("A" & [E2] & ":A" & [E3])
Set rng = ws.Range("G2")
With rng.Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
        Formula1:="=Hoja1!" & range1.Address
End With
End If
End Sub

Como verás en mi ejemplo he utilizado Hoja1 como nombre de la hoja, que deberás cambiar en caso necesario.

También he utilizado un par de celdas para hacer dos cálculos intermedios. E2 y E3

En E2     =FILA(INDICE(C:C;COINCIDIR(F2;C:C;0)))

En E3     =FILA(INDICE(C:C;COINCIDIR(F2;C:C;0)))+CONTAR.SI(C:C;F2)-1

Si no puedes usar esas dos celdas, recuerda cambiar E2 y E3 en el código

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas