Autocompletar TextBox con contenido de la columna A

¿Cómo puedo hacer que lo que escribo en el textbox (que he llamado txtNombre) se autocomplete con el contenido de la columna A de la hoja actual?

Soy novato; hace apenas una semana que programo con VBA y he hecho una base de datos que voy ampliando a través de un formulario. Actualmente cuenta con 220 filas con nombres de personas y, de vez en cuando, tengo que introducir una nueva y me gustaría activar el autocompletar como medida de aviso de si ya está la persona registrada.

Me interesa el resultado, claro, pero mucho más aprender y comprender los pasos que hay que dar. Me gustaría que, en medida de lo posible, se incluyera alguna explicación en la respuesta o se nombrara algún sitio web o tutorial que me sirva para comprender los conceptos que salgan.

1 Respuesta

Respuesta
2

Los textbox no tienen la función de autocompletar, los combobox si la tienen en su propiedad matchentry. De todas formas para solucionar tu problema puedes hacer lo siguiente: Esta macro se ejecuta al pulsar un botón del formulario y lo que hace es examinar si ya existe ese nombre en la base de datos y si fuera así te lo avisa y no lo acepta. En mi ejemplo estoy evaluando los datos introducidos en la columna A de la hoja1.

Private Sub CommandButton1_Click()
'por Luismondelo
valor = TextBox1.Value
contarsi = Application.WorksheetFunction.CountIf(Sheets("hoja1").Columns(1), valor)
If contarsi <> 0 Then
MsgBox "el valor ya existe y no se admite"
End If
End Sub

recuerda finalizar y puntuar

Muchas gracias Luis, funciona a la perfección y encaja muy bien con la idea que tenía. He añadido que busque la celda en la que está registrada la persona por si quiero hacer alguna modificación; lo apunto aquí por si alguien sigue el tema y le interesa.

valor = Textbox1.Value
ContarSi = Application.WorksheetFunction.CountIf(Sheets("hoja1").Columns(1), valor)
If ContarSi <> 0 Then
MsgBox "El valor ya existe y no se admite"
Cells.Find(valor, after:=ActiveCell, LookIn:=xlFormulas, lookat:=xlPart, _
searchorder:=xlByRows, searchdirection:=xlNext, MatchCase:=False, _
searchformat:=False).Activate
End If

Un saludo y gracias de nuevo,

Fran

Como también soy novato en la página, no sabía que podía mandar el agradecimiento al puntuar y lo he hecho a través de la "aclaración". ¡Tomo nota!

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas