Note: The other languages of the website are Google-translated. Back to English
Iniciar sesión  \/ 
x
or
x
Regístrate  \/ 
x

or

¿Cómo autocompletar un cuadro de texto al escribir en Excel?

De forma predeterminada, Excel puede recordar lo que ha ingresado en las celdas de la hoja de trabajo actual y completar automáticamente este contenido la próxima vez al escribir una letra inicial relacionada en una nueva celda. Sin embargo, si desea que todos los contenidos que ha ingresado en la hoja de trabajo se completen automáticamente en un cuadro de texto (Control ActiveX), ¿cómo podría hacerlo? Este artículo proporcionará un método VBA para ayudarlo a completar automáticamente un cuadro de texto al escribir una letra inicial en el interior.

Autocompletar un cuadro de texto al escribir con código VBA

Pestaña de Office Habilite la edición y navegación con pestañas en Office y haga su trabajo mucho más fácil
Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%
  • Reutiliza cualquier cosa: Agregue las fórmulas, gráficos y cualquier otra cosa más utilizados o complejos a sus favoritos y reutilícelos rápidamente en el futuro.
  • Más de 20 funciones de texto: Extraer número de la cadena de texto; Extraer o eliminar parte de los textos; Convierta números y monedas a palabras en inglés.
  • Combinar herramientas: Varios libros de trabajo y hojas en uno; Fusionar varias celdas / filas / columnas sin perder datos; Fusionar filas duplicadas y suma.
  • Herramientas divididas: Divida los datos en varias hojas según el valor; Un libro de trabajo para varios archivos Excel, PDF o CSV; Una columna a varias columnas.
  • Pegar saltando Filas ocultas / filtradas; Cuenta y suma por color de fondo; Envíe correos electrónicos personalizados a varios destinatarios de forma masiva.
  • Súper filtro: Cree esquemas de filtros avanzados y aplíquelos a cualquier hoja; Ordenar por semana, día, frecuencia y más; Filtra por negrita, fórmulas, comentario ...
  • Más de 300 potentes funciones; Funciona con Office 2007-2019 y 365; Soporta todos los idiomas; Fácil implementación en su empresa u organización.

Autocompletar un cuadro de texto al escribir con código VBA


Haga lo siguiente para que un cuadro de texto se complete automáticamente al escribir una letra inicial dentro del cuadro de texto.

1. Inserte un cuadro de texto haciendo clic en Desarrollador > recuadro > Cuadro de texto (control ActiveX). Ver captura de pantalla:

2. Y luego haga clic en Desarrollador > recuadro > Cuadro de lista (control ActiveX) para insertar un cuadro de lista en la hoja de trabajo actual. Ver captura de pantalla:

3. Haga clic con el botón derecho en la pestaña de la hoja y luego haga clic en Ver código desde el menú contextual como se muestra a continuación.

4. En el Microsoft Visual Basic para aplicaciones ventana, copie y pegue debajo del código VBA en la ventana Código. Y luego haga clic en Las herramientas > Referencias, y luego revisa el Tiempo de ejecución de secuencias de comandos de Microsoft en el cuadro Referencias - VBAProject caja de diálogo. Ver captura de pantalla:

Código de VBA: autocompletar un cuadro de texto al escribir

Dim xRg As Range
Dim xDic As New Dictionary
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    Me.TextBox1.Value = Me.ListBox1.Value
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xVal As String
    On Error Resume Next
    If IsNumeric(Target.Value) Then
        xVal = Str(Target.Value)
    Else
        xVal = Target.Value
    End If
    If xVal <> "" Then
        If Not xDic.Exists(xVal) Then
            xDic.Add xVal, xVal
        End If
    End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Me.ListBox1.Visible = False
End Sub
Private Sub Worksheet_Activate()
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    If xRg Is Nothing Then
        Set xRg = ActiveSheet.UsedRange
    End If
    Me.ListBox1.Visible = False
    xDic.RemoveAll
    With Me.ListBox1
        For I = 1 To xRg.Count
            xStr = xRg(I).Value
            If xStr <> "" Then
                .AddItem xStr
                If Not xDic.Exists(xStr) Then
                    xDic.Add xStr, xStr
                End If
            End If
        Next
    End With
End Sub
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    With Me.ListBox1
        .Top = Me.TextBox1.Top
        .Left = Me.TextBox1.Left + Me.TextBox1.Width
        .Width = Me.TextBox1.Width
    End With
    TextBoxVal Me.TextBox1.Object
End Sub
Sub TextBoxVal(xTextBox As Variant)
    Dim I As Long
    Dim xStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    If xRg Is Nothing Then Exit Sub
    Me.ListBox1.Clear
    xStr = xTextBox.Value
    If xStr = "" Then
        Me.ListBox1.Visible = False
        Application.EnableEvents = True
        Exit Sub
    End If
    For I = 0 To UBound(xDic.Items)
        If Left(xDic.Items(I), Len(xStr)) = xStr Then
            Me.ListBox1.AddItem xDic.Items(I)
        End If
    Next
    Me.ListBox1.Visible = True
    If Me.ListBox1.ListCount > 0 Then
        With xTextBox
            .Value = Me.ListBox1.List(0)
            .SelStart = Len(xStr)
            .SelLength = Len(Me.ListBox1.List(0))
        End With
    End If
    Me.ListBox1.Activate
    Me.ListBox1.Selected(0) = True
    Application.ScreenUpdating = True
End Sub
Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        Me.TextBox1.Value = Me.ListBox1.Value
    End If
End Sub

<b>Nota</b>: En el código, ListBox1 y Cuadro de texto1 son el nombre del cuadro de lista y el cuadro de texto que ha insertado en su hoja de trabajo.

5. presione el otro + Q llaves para salir del Microsoft Visual Basic para aplicaciones ventana.

6. Desactive el modo de diseño haciendo clic en Desarrollador > Modo de diseño en la hoja de trabajo.

7. Ahora cambie a otra hoja de trabajo y luego vuelva a la hoja de trabajo anterior para habilitar el código VBA.

De ahora en adelante. Al ingresar una letra inicial en el cuadro de texto, todos los textos que comienzan con esa letra que ingresó en la hoja de trabajo se enumerarán dentro del cuadro de lista que se encuentra en el lado derecho del cuadro de texto. Haga doble clic en el que necesita para ingresarlo en el cuadro de texto. Ver captura de pantalla:

<b>Nota</b>: Puedes usar el Up or Plumón tecla de flecha para moverse entre todos los textos de autocompletar en el cuadro de lista, y luego presione la tecla Entrar para ingresar la necesaria en el cuadro de texto.


Artículos relacionados:


Las mejores herramientas de productividad de oficina

Kutools para Excel resuelve la mayoría de sus problemas y aumenta su productividad en un 80%

  • Reutilizar: Inserte rápidamente fórmulas complejas, gráficos y cualquier cosa que hayas usado antes; Cifrar celdas con contraseña; Crear lista de distribución y enviar correos electrónicos ...
  • Barra de súper fórmula (edite fácilmente varias líneas de texto y fórmulas); Diseño de lectura (leer y editar fácilmente un gran número de celdas); Pegar en rango filtrado...
  • Combinar celdas / filas / columnas sin perder datos; Contenido de celdas divididas; Combinar filas / columnas duplicadas... Prevenir celdas duplicadas; Comparar rangos...
  • Seleccione Duplicado o Único Filas; Seleccionar filas en blanco (todas las celdas están vacías); Super Find y Fuzzy Find en muchos libros de trabajo; Selección aleatoria ...
  • Copia exacta Varias celdas sin cambiar la referencia de la fórmula; Crear referencias automáticamente a varias hojas; Insertar viñetas, Casillas de verificación y más ...
  • Extraer texto, Agregar texto, Eliminar por posición, Quitar espacio; Crear e imprimir subtotales de paginación; Convertir entre contenido de celdas y comentarios...
  • Súper filtro (guardar y aplicar esquemas de filtros a otras hojas); Orden avanzado por mes / semana / día, frecuencia y más; Filtro especial en negrita, cursiva ...
  • Combinar libros y hojas de trabajo; Combinar tablas basadas en columnas clave; Dividir datos en varias hojas; Conversión por lotes de xls, xlsx y PDF...
  • Más de 300 potentes funciones. Compatible con Office / Excel 2007-2019 y 365. Compatible con todos los idiomas. Fácil implementación en su empresa u organización. Características completas Prueba gratuita de 30 días. Garantía de devolución de dinero de 60 días.
pestaña kte 201905

Office Tab lleva la interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil

  • Habilite la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
  • Abra y cree varios documentos en nuevas pestañas de la misma ventana, en lugar de en nuevas ventanas.
  • ¡Aumenta su productividad en un 50% y reduce cientos de clics del mouse todos los días!
officetab parte inferior
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    suprio · 2 years ago
    Why would anyone go for writing a script when there are simpler ways to get a dropdown list???