Lista desplegable con macro sin celdas vacías

Estoy intentando hacer una lista desplehable con una macro. Para activarla en la celda C7 de la hoja2, pero solo cuando es necesario

Los datos están en la Hoja1 A2:A500 El problema es que en el rango hay valores repetidos

Sub Lista_desplegable_sin_duplicados()
With Selection.Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=Hoja1!$A$3:$A$500"
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub

Luego en función del dato que coloque en la lista desplegable, se completen los datos de las celdas

L7

C8

C9

C10

J9

J10

Es una base de clientes que la incorporo cuando es necesario

1 respuesta

Respuesta
1

La siguiente macro te pone una lista de validación en la hoja2, en la celda C7, con valores únicos y sin espacios en blanco, tal y como lo pediste.

Sub Lista_desplegable_sin_duplicados()
  Dim dic As Object
  Dim a As Variant
  Dim i As Long
  '
  Set dic = CreateObject("Scripting.Dictionary")
  a = Sheets("Hoja1").Range("A3", Sheets("Hoja1").Range("A" & Rows.Count).End(3)).Value
  For i = 1 To UBound(a)
    If a(i, 1) <> "" Then dic(a(i, 1)) = Empty
  Next
  '
  With Range("C7").Validation
    .Delete
    .Add xlValidateList, xlValidAlertStop, xlBetween, Join(dic.keys, ",")
  End With
End Sub

Pero lo que no tengo claro es a qué te refieres con esto:

Luego en función del dato que coloque en la lista desplegable, se completen los datos de las celdas

Para eso puedes utilizar la función BuscarV.

Pero no me queda claro lo que pretendes.

Si pudieras explicarlo con un ejemplo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas