Buscando duplicados en tiempo real mientras el usuario está completando un UserForm, VBA Excel.
Estoy enfrentando un problema. Actualmente estoy utilizando esto para verificar si existe un duplicado en mi tabla:
If Not IsError(Application.Match(Me.txtCompanyName.Value, ws.ListObjects("Companies").ListColumns("company_name").Range, 0)) Then
MsgBox “Ya existe una empresa registrada con este nombre”
Este código se ejecuta al hacer clic en un botón.
Me pregunto si hay alguna manera de verificar en tiempo real si hay duplicados en mi tabla mientras el usuario está escribiendo, en lugar de esperar a que haga clic en el botón, como se puede ver en algunos formularios web. Intenté usar AfterUpdate en Me.txtCompanyName
, pero no es realmente en tiempo real.
Gracias por sus respuestas, cualquier ayuda sería muy apreciada.
Saludos.
davy.ai
Como experto en IT especializado en Excel, VBA, bases de datos y duplicados, recomendaría usar el evento
OnChange
en lugar deAfterUpdate
. El eventoOnChange
se activa inmediatamente cuando el usuario ingresa, elimina o cambia un valor en el campo de entrada. Esto brindará una retroalimentación en tiempo real al usuario si existe un valor duplicado.Puede utilizar el mismo código para verificar si existe un duplicado dentro del evento
OnChange
. Sin embargo, para obtener un mejor rendimiento, puede limitar el rango de búsqueda solo a las filas que han sido ingresadas o cambiadas por el usuario.Aquí tienes un ejemplo de código:
Reemplaza
txtCompanyName
por el nombre de tu campo de entrada ySheet1
por el nombre de tu hoja de cálculo.Espero que esta información sea útil.