H o l a :
En un nuevo libro realiza lo siguiente:
1. Crea 3 hojas.
2. En los eventos de la hoja1 pondrás los eventos
3. La segunda hoja la llamas "Nombres"
4. En la hoja "Nombres" vas a poner los todos tus nombres desde la celda A2 hacia abajo.
5. La tercera hoja la llamas "Temp"
6. Pon la siguiente macro en los eventos de la hoja1
Private Sub Worksheet_SelectionChange(ByVal target As Range)
'Por.Dante Amor
If target.Count > 1 Then Exit Sub
Set celdas = Range("A1:A10") 'rango de celdas con validación
Set h1 = Sheets("Nombres") 'hoja con los nombres
rango_nombres = "A2:A20" 'rango de celdas con los nombres
Set h2 = Sheets("Temp")
'
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(rango_nombres)
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
La macro se va a encargar de crear las listas de validación. No es necesario que las crees.
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(Hoja1)
- En el panel del lado derecho copia la macro
En la macro tienes que actualizar estos datos:
Set celdas = Range("A1:A10") 'rango de celdas con validación
Set h1 = Sheets("Nombres") 'hoja con los nombres
rango_nombres = "A2:A20" 'rango de celdas con los nombres
"A1:A10", por las celdas donde quieres la validación.
"A2:A20", por las celdas donde tienes todos los nombres.
Si tienes dificultades para adaptar la macro a tus datos, envíame tu archivo.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias