Auto-Complete en Cajas de Texto

 

Auto completar o Autocomplete es una  herramienta muy popular en el  amplio mundo del desarrollo, en esta particular opción ayuda al usuario a completar el texto que escribe conforme a los caracteres que digita, esta su vez va mostrando las opciones disponibles, estas opciones no son más que una lista despegable que va decreciendo a medida que se escribe.

 

 

 

 

Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load

Dim MySource As New AutoCompleteStringCollection()
MySource.AddRange(New String() _
{ _
"Enero", _
"Febrero", _
"Marzo", _
"Abril", _
"Mayo", _
"Junio", _
"Julio", _
"Agosto", _
"Septiembre", _
"Octubre", _
"Noviembre", _
"Diciembre" _
})

With TextBox1
.AutoCompleteCustomSource = MySource
.AutoCompleteMode = AutoCompleteMode.SuggestAppend
.AutoCompleteSource = AutoCompleteSource.CustomSource
End With
End Sub

El auto completar le da a tu aplicación un dinamismo singular y atractivo.

Esta técnica es muy común en la web, pero la puedes implementar sin problemas en tus entornos  Windows para que los usuarios de tu sistema se adapten muy fácil y rápido.

Tags: ,

9 Responses

  1. Jimmy dice:

    Se puede hacer tambien con Base de Datos, quizas enlazandolo a un Dataset?…

  2. JAIR ALCARAZ dice:

    BUEN DIA, MUY BUEN APORTE, ESTO LO PUEDO USAR EN UN FORMULARIO DE EXCEL… SOY NUEVO EN ESTO Y QUIERO CREAR UN FORMULARIO DONDE EL USUARIO ESCRIBA EL CODIGO DEL PRODUCTO O LO BUSQUE POR UN APARTADO DE AUTOCOMPLETAR. AGRADECERIA MUCHO TU APOLLO.

  3. JAIR ALCARAZ dice:

    Gracias, estare revisando el post

    • Rolyn Gamez dice:

      He estado tratando de hacer lo que tu dices pero lo único que he conseguido es cargarlo en un ComboBox. No se si te sirve de algo. Saludos.

  4. Rolyn Gamez dice:

    Tienes algún correo, encontre una forma no se parece, pero funciona igual.

  5. Rolyn Gamez dice:

    O por si le sirve a alguien mas dejo el código aca mejor:

    Dim ufEventsDisabled As Boolean
    Dim autoCompleteEnabled As Boolean
    Dim oRange As Range

    Private Sub TextBox1_Change()
    If ufEventsDisabled Then Exit Sub
    If autoCompleteEnabled Then Call myAutoComplete(TextBox1)
    End Sub

    Sub myAutoComplete(aTextBox As MSForms.TextBox)
    Dim RestOfCompletion As String
    On Error GoTo Halt
    With aTextBox
    If .SelStart + .SelLength = Len(.Text) Then
    RestOfCompletion = Mid(oRange.Cells(1, 1).AutoComplete(.Text), Len(.Text) + 1)
    ufEventsDisabled = True
    .Text = .Text & RestOfCompletion
    .SelStart = Len(.Text) – Len(RestOfCompletion)
    .SelLength = Len(RestOfCompletion)
    End If
    End With
    Halt:
    ufEventsDisabled = False
    On Error GoTo 0
    End Sub

    Private Sub TextBox1_AfterUpdate()
    Dim strCompleted As String
    With TextBox1
    strCompleted = oRange.AutoComplete(.Text)
    If LCase(strCompleted) = LCase(.Text) Then
    ufEventsDisabled = True
    .Text = strCompleted
    ufEventsDisabled = False
    End If
    End With
    End Sub

    Private Sub TextBox1_Enter()
    Set oRange = ThisWorkbook.Sheets(“Hoja1″).Range(“F1:F20″)
    End Sub

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    autoCompleteEnabled = KeyCode vbKeyBack
    autoCompleteEnabled = ((vbKey0 <= KeyCode) And (KeyCode <= vbKeyZ))
    End Sub

    Funciona en VBA para Aplicaciones en probado Excel 2010.

    Espero te sirva de algo.

    Saludos.

  6. JAIR ALCARAZ dice:

    Gracias por el Codigo, lo voy a probar, mi correo es jair.alcaraz@yahoo.com

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© VB-MUNDO – Visual Basic y mucho más
CyberChimps