¿Cómo cargar datos alfanuméricos en un combobox activeX?

Como se podrá cargar datos alfanuméricos en un combobox que no este dentro de los userform, es decir que sea combo de activex, p.e. Que cargue datos de una columna sin repetir algún dato.

Dante Amor

2 respuestas

Respuesta
1

Para el siguiente código:

With Sheets("hoja con combobox")
  With Sheets("hoja con datos")
    Workbooks.Add
    .Range(.[d1], .Cells(Rows.Count, "d").End(xlUp)).AdvancedFilter 2, , _
      ActiveCell, True
  End With
  ActiveCell.CurrentRegion.Sort ActiveCell, 1, Header:=1
  .ComboBox1.List = ActiveCell.Parent.Range( _
    ActiveCell.Offset(1), ActiveCell.End(xlDown)).Value
  ActiveWorkbook.Close False
End With

tienes:
- Una hoja llamada "hoja con combobox" donde está tu ComboBox1.
- Otra hoja llamada "hoja con datos". Los datos se encuentran en la columna D de manera que en la celda D1 tienes al encabezado y a partir de D2 los datos propiamente dichos.
- Y tú, si quieres, puedes tener activa una tercera hoja.

Para ganar en eficiencia estoy aplicando un filtro avanzado y cargo los datos únicos después de ordenarlos de menor a mayor.
¿Te sirve la idea?...

Respuesta
1

Te anexo la macro para la carga de los datos alfanuméricos.

Private Sub ComboBoxPartido_Change()
'Por.Dante Amor
    Set h2 = Sheets("Sindico")
    ComboBoxGanados.Clear
    ComboBoxGanados = ""
    For i = 11 To h2.Range("A" & Rows.Count).End(xlUp).Row
        If h2.Cells(i, "A") = Val(ComboBoxDistrito) And _
           h2.Cells(i, "C") = ComboBoxNombre And _
           h2.Cells(i, "E") = ComboBoxPartido Then
            agregar2 ComboBoxGanados, h2.Cells(i, "F")
        End If
    Next
    filtrar
End Sub
'
Sub agregar2(combo As ComboBox, dato As String)
'Por.Dante Amor
    For i = 0 To combo.ListCount - 1
        Select Case StrComp(combo.List(i), dato, vbTextCompare)
            Case 0: Exit Sub 'ya existe en el combo y ya no lo agrega
            Case 1: combo.AddItem dato, i: Exit Sub 'Es menor, lo agrega antes del comparado
        End Select
    Next
    combo.AddItem dato 'Es mayor lo agrega al final
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas