Excel - Creación de la lista desplegable de la lista dinámica en VBA

Problema

He estado tratando de hacer una Macro que pueda crear una lista desplegable a partir de una lista dinámica en la columna A. Hasta ahora, he creado el siguiente código:

 Subprueba () Rango ("A1", Rango ("A65536"). Fin (xlUp)). Nombre = "MyList" Cells (1, 3) .Seleccione con Selection.Validation .Delete .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= & MyList" .IgnoreBlank = False .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = ". .ShowError = True End With End Sub 

Sin embargo, llamar a MyList no funciona.

Solución

Prueba esto:

  • Vaya a la validación de datos, elija la lista y escriba = MyList
  • Ahora haga clic derecho en la pestaña de hojas y seleccione ver código y pegue el siguiente código:

 Private Sub Worksheet_Change (ByVal Target As Range) Si Intersect (Target, Columns ("A: A")) no es nada, entonces salga de Sub Dim lRow As Integer lRow = Range ("A" & Rows.Count) .End (xlUp). Rango de fila ("A1: A" & lRow) .Name = "MyList" End Sub 
  • Este código cambiará el rango de MyList siempre que se haga un cambio en la columna A.

Gracias a TrowaD por este consejo.

Artículo Anterior Artículo Siguiente

Los Mejores Consejos