Lista desplegable Variable

Hola! Estoy tratando de hacer una lista desplegable variable de acuerdo a los registros dentro de un rango. ¿Cómo puedo hacer que el rango que tiene la lista como parámetro sea variable?
Este es el código que tengo hasta el momento:
Sub ListaPaisesForm()
Dim n As Integer
n = 9
For i = 1 To 19
If IsEmpty(ThisWorkbook.Sheets("Formulario").Cells(9 + i, 13)) = False Then
n = n + 1
End If
Next i
Dim rng As Excel.Range
Set rng = Range(Cells(13, 3), Cells(13, n))
ThisWorkbook.Sheets("Formulario").Shapes.Range(Array("Drop Down 12")).Select
With Selection
.ListFillRange = rng
.LinkedCell = ""
.DropDownLines = 8
.Display3DShading = False
End With
End Sub
Espero me puedas ayudar y de antemano gracias.

1 Respuesta

Respuesta
1
Yo lo hago así:
Datos en col a de la hoja 2 y la lista desplegable en celda b1 de la hoja1
Sub lista()
Dim n As Integer
n = Application.WorksheetFunction.CountA(Sheets(2).Range("A:A"))
If n = 0 Then Exit Sub
' para ejemplo lista de datos en columna A hoja 2
' en hoja1 celda b1 pondra validacion de lista con tantos elementos tengas en hoja2 col A
With Sheets(1).Cells(1, 2).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=hoja2!$A$8:" & "$A$" & n
.IgnoreBlank = True
.InCellDropdown = True
.ShowInput = True
.ShowError = True
End With
End Sub
Luego es cuestión de que pongas la llamada al macro tal vez en el evento change de la hoja 2 ( cuando añades o eliminas datos de la columna A hoja2.
No olvides CERRAR la pregunta

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas