Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

PUNTO de VENTA con Excel EDITAR CLIENTE STATUS Activo Inactivo – VBA Excel #1018

Punto Venta en Exccel - Modificar Registros de Cliente

PUNTO DE VENTA EN EXCEL – Cliente con Status Activo – Inactivo

Anteriormente en Sistema de Punto de Venta en Excel, se comenzó a realizar el aplicativo en Excel, el cual se le ha incorporado modificaciones requeridas por los usuarios de nuestro canal de YouTube Dtube y Odysee en esta ocasión la modificación consiste en otorgarle a los clientes registrados el status de Activo o Inactivo y de esta forma poder mostrar solo los clientes activos en el listado cuando se factura o algún otro.

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 de EXCEL 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 para AGREGAR ESTATUS CLIENTE ACTIVO – INACTIVO A PUNTO DE VENTA EN EXCEL

Lo que se pretende con esta modificación es otorgarle a cada cliente una diferenciación entre activo e inactivo, es decir si el cliente está activo podrá aparecer en los listados de clientes a los cuales se les puede facturar, realizar informes etc., por el contrario si está inactivo significa que el cliente no existe más, cerro su comercio, se fusionó con otra empresa etc., pero a los fines de ordenar nuestra cartera de clientes y evitar tener registrados a clientes que no existen más en la empresa, pero que no se pueden eliminar ya que contienen registros en la base de datos e implicaría si se eliminan destruir los datos y tablas correlacionadas que contienen datos sobre esos clientes inactivos, por ello simplemente se hace que no aparezcan en el listado de clientes a facturar, en el caso que puntualmente se requiera consultar sobre los movimientos de dichos clientes se podrá hacer porque, sus datos no han sido eliminados de la base de datos.

Explicación sobre como Modificar el Formulario Punto de Venta para Incorporar esta Modificación de Establecer Cliente Activo – Inactivo

En la base de datos del ejemplo Sistema de Punto de Venta en Excel, es de en el archivo de Access que contiene toda la base de datos del aplicativo en la Tabla DB_Clientes se debe agregar un campo Yes/No True/False o Verdadero/Falso, es indistinto como le llame cada uno, el tema es que al incorporar dicho campo agrega un checkbox en dicho campo, estando activo el cliente cuando el checkbox esta con el tilde.

En la ficha clientes se debe agregar un checkbox para poder establecer el Status del Cliente, cuando se da de alta el cliente, por defecto siempre estará activo, si se quiere modificar su status se debe editar el cliente y destillar el checkbox y luego editar el cliente. Mira el vídeo explicativo para ver con mayor facilidad como se realiza lo comentado.

Seguidamente se explica el código del botón editar de dicho aplicativo, el cual se utiliza para actualizar datos cuando se requiere modificar datos del cliente con así también cuando queremos establecer status inactivo a un cliente.

Se debe crear objeto de conexión de Excel a la Base de datos de Access y el objeto recordset que contendrá los datos recuperados en memoria, así:

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

Luego se abre la conexión a la base de datos:
cn.Open «Provider=Microsoft.ACE.OLEDB.12.0; » & «data source=» & ThisWorkbook.Path & «\1000 DBTSPuntoVenta.accdb;»

Para modificar los datos del cliente se busca el número de cliente, se carga el dato del cliente en la variable busco, así:
busco = UserForm1.TextBox2

Se establece si el checkbox del status del cliente está tildado el status será uno y destiladado o inactivo el status será 0, se usa el código:
If UserForm1.CheckBox2 = True Then Status = 1 Else Status = 0

Se crea la sql para actualizar datos, que es la siguiente:

sql = «UPDATE DB_Clientes SET Nombre_Cliente = ‘» & UserForm1.TextBox3 & «‘, Domicilio_Cliente = ‘» & UserForm1.TextBox4 & «‘, Mail_Cliente = ‘» & UserForm1.TextBox5 & «‘, Telefono_Cliente = ‘» & UserForm1.TextBox6 & «‘, Cliente_Activo = ‘» & Status & «‘ WHERE N_Cliente = » & busco & «»

Con la anterior SQL  se actualizan los datos y si el cliente se paso a inactivo al destillar la casilla de verificación o checkbox, el status del cliente pasará a ser inactivo y no se mostrará cuando se requiera facturar un cliente.

Luego se liberan las variables y cierra conexión con la base de datos de Access una vez hechas las modificaciónes en los datos o perfil del cliente, se usan los siguientes códigos:

Set rs = cn.Execute(sql)

Set rs = Nothing
cn.Close
Set cn = Nothing

Código PARA EVITAR INGRESO DE CLIENTES DUPLICADOS

Código que va en un botón de userform

Private Sub CommandButton6_Click()
On Error Resume Next
Dim cn As ADODB.Connection, rs As ADODB.Recordset, sql As String, maxCliente As Long

If UserForm1.TextBox3 = Empty Then Exit Sub

resp = MsgBox(«Seguro desea guardar los cambios realizados los datos del cliente?», vbCritical + vbOKCancel, «AVISO»)
If resp = 2 Then Exit Sub

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;»
busco = UserForm1.TextBox2
If UserForm1.CheckBox2 = True Then Status = 1 Else Status = 0

sql = «UPDATE DB_Clientes SET Nombre_Cliente = ‘» & UserForm1.TextBox3 & «‘, Domicilio_Cliente = ‘» & UserForm1.TextBox4 & «‘, Mail_Cliente = ‘» & UserForm1.TextBox5 & «‘, Telefono_Cliente = ‘» & UserForm1.TextBox6 & «‘, Cliente_Activo = ‘» & Status & «‘ WHERE N_Cliente = » & busco & «»

Set rs = cn.Execute(sql)

Set rs = Nothing
cn.Close
Set cn = Nothing
MsgBox («Los datos del cliente se editaron con éxito»), vbInformation, «AVISO»

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