Sigue las instrucciones:
1. Para filtrar los nombres es necesario que crees una hoja llamada "nombres"
2. Inserta la siguiente macro en los eventos de tu hoja "Balance"
Private Sub Worksheet_SelectionChange(ByVal target As Range)
'Por.Dante Amor
If target.Count > 1 Then Exit Sub
Set celdas = Range("D16:D25")
Set h1 = Sheets("Empleados")
Set h2 = Sheets("nombres")
col = "J"
'
If Not Intersect(target, celdas) Is Nothing Then
h2.Cells.Clear
u = h1.Range(col & Rows.Count).End(xlUp).Row
j = 1
For Each r In h1.Range("Tabla24[Nombre]")
existe = False
For Each c In celdas
If c.Address <> target.Address Then
If r.Value = c.Value Then
existe = True
Exit For
End If
End If
Next
If existe = False Then
h2.Cells(j, "A") = r.Value
j = j + 1
End If
Next
'
u2 = h2.Range("A" & Rows.Count).End(xlUp).Row
With target.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=" & h2.Name & "!A1:A" & u2
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End If
End Sub
Sigue las Instrucciones para poner la macro en los eventos de worksheet
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet("Balace")
- Del lado derecho copia la macro
Listo! Cada vez que selecciones alguna de las celdas "D16:D25" de tu hoja "Balace" se actualizará la lista.
Saludos. Dante Amor