Realiza lo siguiente:
- Pon el siguiente código en los eventos de tu hoja.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "S1" Then
If Target.CountLarge > 1 Then Exit Sub
'
Dim col As String
Dim a As Variant, b As Variant
Dim i As Long, j As Long
'
col = "Z" 'Ajusta la letra de la columna que desees
Columns(col).ClearContents
a = Range("A2", Range("D" & Rows.Count).End(3)).Value
ReDim b(1 To UBound(a, 1), 1 To 1)
For i = 1 To UBound(a, 1)
If a(i, 3) = Target.Value Then
j = j + 1
b(j, 1) = a(i, 4)
End If
Next
If j > 0 Then
Range(col & 1).Resize(UBound(b, 1)).Value = b
With Range("T1").Validation
.Delete
.Add xlValidateList, xlValidAlertStop, xlBetween, "=" & col & "1:" & col & j
.IgnoreBlank = True: .InCellDropdown = True: .InputTitle = "": .ErrorTitle = ""
.InputMessage = "": .ErrorMessage = "": .ShowInput = True: .ShowError = True
End With
End If
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(tu hoja)
- En el panel del lado derecho copia la macro
- Necesitamos una columna auxiliar para poner los trabajos que coinciden con la fecha. Cambia en la macro, en esta línea: col = "Z", por la letra de la columna que no utilices.
- Incluso la columna "Z" puede estar oculta en tu hoja.
- Entonces, cada que cambies la fecha en la celda S1, en automático la celda T1 tendrá la lista de validación de los trabajos.
[No olvides valorar la respusta.