Hola,
Este código hace literalmente eso
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Me.Range("B2")) Is Nothing Then
Application.EnableEvents = False
Me.Range("B3").ClearContents
With Me.Range("B3").Validation
.Delete
Select Case Me.Range("B2").Value
Case 1
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="Avion,Barco"
Case 3
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="Barco"
Case Else
End Select
End With
Application.EnableEvents = True
End If
End Sub
Por
Israel Cassales, · publicado
.
Gracias a [uSER=143023]@Riddle[/uSER] en este link: https://www.ayudaexcel.com/foro/threads/rellenar-array-desde-un-rango-y-filtrar.39449/, me he enterado de como traspasar un array de una dimensión a un rango o viceversa. Hasta ahora creía que solo se podía, utilizando un array de dos dimensiones.
Os dejo un ejemplo, se trata de una función para filtrar una columna sobre otra:
La función tiene 3 parámetros, todos ellos opcionales:
La función obtiene como resultado, el número de filas filtradas.
Paz y amor
.
FiltrarColumna.xls