Elegir valor de la lista desplegable con autocompletar(SÍMIL COMBOBOX

Quiero elegir valor de la lista desplegable con autocompletar(SÍMIL COMBOBOX, pero no usar un combobox ya que preciso los valores que van apareciendo al elegir;

1 Respuesta

Respuesta
1

H  o l a:

Envíame un correo nuevo y en el asunto escribe tu nombre de usuario.

En el archivo me explicas con un ejemplo lo que necesitas.

Sal u dos

H o l a:

Con la validación de datos no es posible. Para eso se puede utilizar un userform.

Te anexo el código para el usrform

Dim cargando
Dim h1
Private Sub ComboBox1_Change()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If cargando = True Then Exit Sub
    'Set h1 = Sheets("hoja1")
    col = "P"
    cargando = True
    dato = ComboBox1
    ComboBox1.Clear
    For i = 9 To h1.Range(col & Rows.Count).End(xlUp).Row
        If Left(UCase(h1.Cells(i, col)), Len(dato)) = UCase(dato) Then
            ComboBox1.AddItem h1.Cells(i, col), 0
            j = j + 1
        End If
    Next
    ComboBox1 = dato
    '
    'En esta parte se activa la lista
    'Range("D6"). Activate
    TextBox1. SetFocus
    ComboBox1. SetFocus
    ComboBox1. DropDown
    '
    Application.ScreenUpdating = True
    cargando = False
End Sub
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Llenar el número"
        TextBox1.SetFocus
        Exit Sub
    End If
    If ComboBox1 = "" Or ComboBox1.ListIndex = -1 Then
        MsgBox "Poner un dato válido en el combobox"
        ComboBox1.SetFocus
        Exit Sub
    End If
    u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
    If IsNumeric(TextBox1) Then numero = Val(TextBox1) Else numero = TextBox1
    h1.Cells(u, "A") = numero
    h1.Cells(u, "B") = ComboBox1
End Sub
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
    Unload Me
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("Hoja1")
    For i = 9 To h1.Range("P" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h1.Cells(i, "P")
    Next
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Te anexo la macro actulizada

Dim cargando
Dim h1
Private Sub ComboBox1_Change()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If cargando = True Then Exit Sub
    'Set h1 = Sheets("hoja1")
    col = "P"
    cargando = True
    dato = ComboBox1
    ComboBox1.Clear
    For i = 9 To h1.Range(col & Rows.Count).End(xlUp).Row
        If Left(UCase(h1.Cells(i, col)), Len(dato)) = UCase(dato) Then
            ComboBox1.AddItem h1.Cells(i, col), 0
            j = j + 1
        End If
    Next
    ComboBox1 = dato
    '
    'En esta parte se activa la lista
    'Range("D6"). Activate
    TextBox1. SetFocus
    ComboBox1. SetFocus
    ComboBox1. DropDown
    '
    Application.ScreenUpdating = True
    cargando = False
End Sub
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Llenar el número"
        TextBox1.SetFocus
        Exit Sub
    End If
    If ComboBox1 = "" Or ComboBox1.ListIndex = -1 Then
        MsgBox "Poner un dato válido en el combobox"
        ComboBox1.SetFocus
        Exit Sub
    End If
    u = 8
    Do While h1.Cells(u, "A") <> ""
        u = u + 1
    Loop
    If IsNumeric(TextBox1) Then numero = Val(TextBox1) Else numero = TextBox1
    h1.Cells(u, "A") = numero
    h1.Cells(u, "B") = ComboBox1
    TextBox1 = ""
    ComboBox1 = ""
    TextBox1.SetFocus
End Sub
'
Private Sub CommandButton2_Click()
'Por.Dante Amor
    Unload Me
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("Productos")
    For i = 9 To h1.Range("P" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h1.Cells(i, "P")
    Next
End Sub

' : )
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
' : )

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas