Te anexo la macro para que la pongas en un botón.
Cambia en la macro "B4" por la celda que tiene la lista de validación.
Supongo que esa lista está en un rango de celdas. Entonces lo que hace la macro, es obtener de la celda el rango de celdas que tiene en la lista de validación, buscar un dato de forma aleatoria y ponerlo en la misma celda.
Sub NombreAleatorio()
'Por.Dante Amor
Set celda = Range("B4")
If celda.Validation.Type = 3 Then
a = celda.Validation.Formula1
Set rango = Range(a)
ini = rango(1, 1).Row
fin = rango.Rows.Count + ini - 1
col = rango(1, 1).Column
fil = Evaluate("=RANDBETWEEN(" & ini & "," & fin & ")")
nom = Cells(fil, col)
celda.Value = Cells(fil, col)
Else
MsgBox "no tiene validación"
End If
End Sub
Sigue las Instrucciones para un botón y ejecutar la macro
- Abre tu libro de Excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo
- En el panel del lado derecho copia la macro
- Ahora para crear un botón, puedes hacer lo siguiente:
- Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
- Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
- Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
- Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: NombreAleatorio
- Aceptar.
- Para ejecutarla dale click a la imagen.
Saludos. Dante Amor
Si es lo que necesitas.