Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

PUNTO de VENTA con EXCEL Agregar DATOS Sin REPETIR NIF SSN RUT CUIT RUC RUT #1019

Punto de Venta No Ingresar Duplicados

 SOLO FALTA CAMBIAR EL TEXTO EL RESTO ESTA TODO HASTA EL LINK DE DESCARGA ESTA HECHO PUNTO DE VENTA EN EXCEL – REGISTROS SIN SUPLICADOS

En este nueva entrega del Sistema de Punto de Venta en Excel, se incorpora una macro que permite determinar si un cliente está duplicado, en dicho caso no deja ingresar registros repetidos o duplicados. Al querer ingresar un cliente nuevo la macro determinará si el Cliente ya está registrado en la base de datos, en dicho caso la macro no permite ingresar datos o registros duplicados.

Maneja Excel como los mejores deberías hacer click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los MEJORES CURSOS ON LINE que he visto en internet, te lo recomiendo no te arrepentirás.

  
Puedes ver la macro en acción y una explicación más detallada de su codificación y funcionamiento, descarga el archivo y mira el video para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con  vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil. Te pido que me sigas y comentes en DTube y Odysee para poder seguir publicado macros gratis.

MACRO VERIFICA SI UN REGISTRO ESTÁ REPETIDO EN DICHO CASO NO LO GUARDA LA BASE DE DATOS DE ACCESS

En el ejemplo que se puede descargar desde el final del post, se muestra como al tratar de ingresar un cliente nuevo en el Sistema de Punto de Venta en Excel, el sistema lo rechaza y sale un mensaje avisando que el cliente está duplicado o el registra ya existe en la base de datos, esto evita que el usuario siga cargando registros de un cliente que ya está en la base de datos y de esta manera no duplicar datos.

En este caso la macro se ejecuta cuando se actualiza el campo o textbox donde se debe ingresar el Numero de Seguro Social , Rut, Cuit o como se denomine el registro que es único e identifica a cada persona en los diferentes países.

Explicación de la Macro Excel – VBA para INGRESAR DATOS SIN DUPLICAR

La macro al estar conectada con Access que es donde se guarda la Base de Datos, la macro de Excel se debe conectar con dicha base de dato, haciendo referencia al misma, de la siguiente forma, así:

Dim cn As ADODB.Connection, rs As ADODB.Recordset
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

Luego se abre conexión con la base de datos

cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»

Posteriormente se arma el Sting de consulta o SQL, así:

sql = «SELECT Identificacion_Cliente,Nombre_Cliente FROM DB_Clientes WHERE Ucase(Identificacion_Cliente) =» & Trim(UCase(UserForm1.TextBox31)) & » »

Se ejecuta la consulta, cargando los datos obtenidos a la variable rs, manteniendo los datos en memoria.

Set rs = cn.Execute(sql)

La consulta SQL tenía por objetivo recuperar el nombre o número que devuelve el campo, si la variable «rs» no está vacía significa que el Cliente que se intenta registrar ya está registrado, por ende sale un mensaje borra los datos de los textbox, libera variables y cierra la conexión, el código usado es:

If rs.EOF = False Then
nom = rs.Fields(1).Value
MsgBox («El Cliente ya se encuentra registrado en la base de datos con el nombre » & nom), vbInformation, «https://macrosenexcel.com»
UserForm1.TextBox31 = «»
UserForm1.TextBox31.SetFocus
Set rs = Nothing
cn.Close
Set cn = Nothing
Exit Sub
End If
End If

Código PARA EVITAR INGRESO DE CLIENTES DUPLICADOS

Código que va en un formulario

Private Sub TextBox31_AfterUpdate()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If TextBox31 <> Empty And AltaCte = 1 Then
Dim cn As ADODB.Connection, rs As ADODB.Recordset
On Error Resume Next
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»
sql = «SELECT Identificacion_Cliente,Nombre_Cliente FROM DB_Clientes WHERE Ucase(Identificacion_Cliente) =» & Trim(UCase(UserForm1.TextBox31)) & » »
Set rs = cn.Execute(sql)

If rs.EOF = False Then
nom = rs.Fields(1).Value
MsgBox («El Cliente ya se encuetra registrado en la base de datos con el nombre » & nom), vbInformation, «https://macrosenexcel.com»
UserForm1.TextBox31 = «»
UserForm1.TextBox31.SetFocus
Set rs = Nothing
cn.Close
Set cn = Nothing
Exit Sub
End If
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


 

Puedes DESCARGAR el Ejemplo de Punto de Venta con la Modificación para Evitar el Ingreso de Clientes Repetidos

Descarga el fichero usado como ejemplo en este post y en el vídeo explicativo, el mismo es totalmente gratuito y su uso es libre, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.

Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.

If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.

Donate:
👉⏩ Cuenta Paypal: https://paypal.me/programarexcel

👉⏩ Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd

👉⏩ Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407

👉⏩ Cuenta Skrill: marcrodos@yahoo.es

👉⏩ Cuenta Neteller: marcrodos@yahoo.es

👉⏩ Apoya mi trabajo https://www.patreon.com/programarexcel

👉⏩ Sígueme en DTube: https://d.tube/#!/c/programarexcel01

👉⏩ Sígueme en Odysee: https://odysee.com/@programarexcel:3