Visual Basic para Aplicaciones - Registrar Compra y actualizar stock

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por fjpg (135 intervenciones) el 19/09/2019 11:16:49
Hola, de nuevo.

En esta duda, necesito una ayuda completa. Ya que no tengo idea por donde empezar.

Necesitaria que una vez rellenado el listbox con los articulos comprados, al dar click en guardar, me registrara los items y la info en la hoja "ENTRADAS" y actualizara el stock de la hoja "ARTICULOS".

El excel que dejo, tiene un registro de dos articulos en la hoja "ENTRADAS" y el stock actualizado en la hoja "ARTICULOS".

Lo hize manualmente, pero se deberia de hacer automático.

GRACIAS adelantadas, me deis ayuda o no..XD XD XD
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Samuel
Val: 84
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por Samuel (27 intervenciones) el 19/09/2019 18:29:15
Hola

Me presento, soy programador experto en la paquetería Microsoft Office desde hace más de 15 años, he desarrollado programas de inventarios, puntos de venta, compras, control de gastos, planeación, hoteles, control de radio taxis, etc. tanto para personas físicas como para empresas y quisiera ayudarte con mis comentarios.

Primero; te recomiendo que en vez de usar Excel, utilices Access para crear aplicaciones de escritorio ya que Excel fue desarrollado para manejar hojas de calculo, no para ser una base de datos y/o aplicación. Es cierto que Excel te permite crear y programar formularios (o ventanas) y puedes utilizar VBA para programar macros, sin embargo no fue fabricado para que se usara como aplicación y base de datos al mismo tiempo, para ello Microsoft desarrollo Microsoft Access que si te permite tanto crear bases de datos.

Microsoft Access te permite crear tablas, consultas, formularios, informes, macros, módulos y módulos de clases. Con todos estos elementos puedes crear tanto una base de datos como una aplicación (o programa) de escritorio de una manera sencilla pero profesional, e incluso puedes compartir la base de datos en una computadora para que varios usuarios se puedan conectar a dicha base de datos desde otras computadoras, cosa que Excel no te permite, ya que si un usuario abre un archivo de Excel, los demás usuarios deben de esperar a que el primer usuario cierre dicho archivo de Excel para poder utilizarlo.

Otros puntos a considerar:
1. Excel solo te permite tener 1,048,576 filas por hoja, mientras que Access no tiene limite de filas (pero si tiene un limite de tamaño de base de datos que es de 2GB que equivale a millones de filas).
2. Excel te permite tener información duplicada, Access te puede impedir que dupliques información si así lo requieres.
3. Excel no te puede crear relaciones entre registros (o filas) pero Access si te permite tener la información relacionada.
4. Excel no te permite crear consultas de una o varias tablas y filtrar la información para poder consultarla cuando lo requieras, pero Access si te permite crear consultas tanto sencillas como complejas.
5. Excel no tiene la capacidad de crear y utilizar informes, pero Access sí.
6. Excel no te permite crear formularios conectados a tablas, pero Access sí.
7. Excel no te permite centralizar la información para que varios usuarios la modifiquen al mismo tiempo, pero Access sí te lo permite.

Conclusión:
En resumen, Excel es buenísimo para uso personal, para crear graficas o dashboard, para crear robots o macros que realizan una serie de instrucciones de manera automática, para crear tablas dinámicas y pequeñas listas de datos (pero no bases de datos como tal), etc. Pero si lo que necesitas es un sistema que te guarde la información de compras, inventarios, pagos, ventas, etc. definitivamente tienes que usar otro tipo de software para desarrollar una verdadera aplicación de gestión como Access (o Visual Studio y SQL Server), estos programas te permiten crear soluciones robustas para prácticamente cualquier tipo de necesidad o negocio.


Finalmente:
Pero si deseas seguir usando Excel y respondiendo a tu pregunta lo que tendrías que hacer es lo siguiente:

1. Al guardar una compra tendrías que insertar una nueva fila en la hoja ENTRADAS en la cual tendrías que guardar todos los datos de los items (o líneas de productos) pero por cada línea tendrías que estar repitiendo la información el encabezado de la compra, cosa que la verdad no es recomendable por muchas razones pero eso tendría que explicarte en otro momento).
2. En la hoja de ARTICULOS. en la columna STOCK tendrías que usar varias formula anidadas para que te sumaran los artículos que coincidan con el código de producto que exista tanto en las ENTRADAS como en las SALIDAS.

Y eso seria todo, pero recuerda que no es recomendado usar Excel para desarrollar este tipo de aplicaciones o soluciones.


Espero que estos comentarios te sean de utilidad, te dejo mis datos de contacto por si requieres una asesoría más personalizada o si deseas los servicios de consultoría.

https://access-solutions.webnode.mx/
[email protected]

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por fjpg (135 intervenciones) el 19/09/2019 18:56:41
El programita seria para un uso particular, y llevar el control.
No es nada a gran escala.

Sopese, la idea de acces pero para lo que necesito, excel me es de gran utilidad.

GRACIAS por tus comentarios.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por MIGUEL (121 intervenciones) el 20/09/2019 02:13:58
Buenas fjpg

te dejo el archivo corregido y unas observaciones.

1° Se quitaron las lineas de código que aumentan o disminuyen los números de entrada y de compra y se pusieron en el label guardar del frm_compras asi solo incrementa si es que se guarda la compra.

2° Se agrego la linea de código que activa el label para agregar el proveedor ya que al eliminarlo no se activa y no permite agregar uno nuevo.

3° Se agregaron las macros en el modulo funciones para aumentar o disminuir el stock, en este caso no es necesario reducir el stock, si se elimina algún producto de la compra, ya que solo se sumara la compra al guardarla.

4° igual que antes moví los controles.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por MIGUEL (121 intervenciones) el 20/09/2019 06:10:46
Buenas Samuel

La informacion que das sobre Excel es un tanto erronea, te explico:

Excel tambien te permite crear tablas, consultas, formularios, informes, macros, módulos y módulos de clases, aunque tienes razon, excel no fue echo como gestor de base de datos.

1° Es correcto, excel por hoja solo admite 1,048,576 filas por 16.384 columnas, pero, se puede hacer una macro que agregue las hojas que sean necesarias para almacenar la informacion, y en excel 2016 el limite de hojas en un libro es el limite que soporte en memoria la pc, esto me permite crear una "Base de Datos" de mas de 2GB, y si no fuera suficiente me permite crear tantos libros como sean necesarios para almacenar los datos de forma automatica(creando la macro).

2° Al igual que Access en Excel se puede manejar a como se necesite, puedo duplicar o no los datos(se crea la macro).

3° Es Correcto que en Excel no se puede relacionar las tablas (en este caso Hojas), pero realmente no es necesario, por ejemplo en Access se crea la clave primaria y para relacionar las tablas se crea en la segunda tabla una clave foranea, que seria por ejemplo el codigo del producto que debe estar en ambas, esto en excel no existe pero si se puede relacionar las hojas ya que pondriamos una columna con el dato unico en las dos hojas y la "relacion" se hace al crear la macro.

4° Excel si permite crear consultas sencillas y complejas, por ejemplo, se puede crear una sola macro que recorra cuntas hojas existan con informacion y despues recorra cuantos libros tengan la informacion que tal vez necesitemos y despues recorra Access y despues SQL server y despues una BD en la nube, lo filtre y te lo ordene en la hoja de calculo, incluso se puede combinar partes de todas la BD en las que busco aunque no esten relacionadas, con que este el numero de codigo y cumpla los requisitos de busqueda es suficiente para hacer un reporte todo en una misma macro.

5° Realmente Excel no tiene un visor de Pdf's, pero se puede crear, haciendo un pdf de la hoja(s) de calculo temporal y con que tengamos un explorador de internet instalado en la pc lo podriamos ver y guardar o imprimir o exportar a otro libro de excel o a word o texto plano o enviar por correo o borrar si nos falto algo por anotar, regresar al form, corregir y crearlo nuevamente ya corregido.

6° La "Relacion" se crea con macros

7° Excel si permite la manipulacion de datos por varios usuarios a la vez, limite de 256 al mismo tiempo, aunque para poder hacerlo no debe de haber ni una sola tabla en el libro, incluso se puede crear un chat en Excel para criticar al jefe, o estar al corriente con los chismes, "no se recomienda este uso"

1.1 No se requiere repetir los encabezados para registrar los articulos de una venta/compra/pedido/traspaso

2.2 Sin formulas se puede sumar/restar/dividir/multiplicar/etc,etc con VBA

En resumen si quieres crear aplicaciones potentes y de forma rapida Access es tu mejor opcion, ya que este te ahorra mucho codigo, y Excel al igual que Access se puede conectar de forma remota complementándolos con SQL Server u otro gestor de base de datos.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar
Imágen de perfil de Samuel
Val: 84
Ha aumentado 1 puesto en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por Samuel (27 intervenciones) el 20/09/2019 07:29:23
Hola Miguel

Gracias por tus comentarios, todo lo que explicas es cierto, he incluso se podría crear una base de datos con puros archivos de texto plano que guarde la información como se hace en las bases de datos no relacionales. Y es cierto que con programación VBA se puede hacer casi todo lo que se hace con los lenguajes de alto nivel como .NET y java. También es cierto que puedes conectar Excel a diversos orígenes de datos como SQL Server, MySQL, Oracle, etc. He incluso puedes instalarle un plugin a Excel para que te permita ejecutar sentencias SQL como si estuvieras trabajando con el SQL Server Management Studio. Y si tienes el tiempo, y las ganas de aprender puedes hacer cosas muy interesante con Excel y todos sus componentes, controles, gráficos etc.

Pero como lo comente anteriormente, Microsoft no desarrollo Excel para que se utilizara como un gestor de base de datos u un entorno de desarrollo (IDE). Para ello Microsoft desarrollo otros software como Access, Visual Basic 6, Visual Studio, SQL Server, y muchos más.

Que se puede usar Excel para muchas cosas, sí, pero eso no significa que sea lo más recomendable.
Que se puede programar en VBA muchas cosas para simular una gestión de base de datos, sí, pero eso no quiere decir que sea más fácil hacerlo en Excel que en Access, Visual Studio o SQL Server.

Quiero aclarar que no estoy en contra de Excel ya que soy programador experto en Excel y Access. En lo personal me gusta mucho Excel y lo uso mucho para hacer cálculos, hojas que se pueden imprimir como si fueran reportes (Pero no son realmente reportes). También lo uso mucho para guardar listas de datos y para muchas otras cosas más. Pero esto no quiere decir que lo use como un entorno de trabajo para crear aplicaciones de bases de datos.

Si tu llamaras a soporte Microsoft y les explicaras que necesitas desarrollar una aplicación para gestionar datos, manipulación masiva de datos, procesos de altas, bajas, cambios, consultar datos, integridad de datos, eliminación de datos redundantes, reportes, etc. te aseguro que Excel no seria la primera opción que ellos te darían.

Sin embargo y después de todo este hilo de conversación, no quiero que pienses ni tu, ni el auditorio que estoy en contra de Excel, al contrario, es una herramienta magnifica, versátil y muy útil para muchas cosas PERO NO ES UN SISTEMA GESTOR DE BASE DE DATOS O UN ENTORNO DE DESARROLLO DE APLICACIÓNES.

Solo quería puntualizar el punto para que las personas que apenas van empezando en la programación no se vallan a confundir cuando se enfrentan ante la decisión de que software usar para desarrollar este tipo de soluciones.

Aclaro que es mi muy humilde punto de vista después de desarrollar programas por mas de 15 años, al final, cada quien programa como quiere o como puede.

Saludos...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por MIGUEL (121 intervenciones) el 20/09/2019 08:18:50
Buenas Samuel

Pues la verdad nunca fue mi intención hacerte ver como si estuvieras en contra de Excel, solo corregí datos que en mi humilde opinión eran erróneos, concuerdo contigo y en mi mensaje anterior lo dejé claro, Excel no es un gestor de base de datos, incluso al final de mi mensaje puse que si querías crear una aplicación potente de forma rápida es mejor Access, y si me permites una corrección más (sin intención de incomodarte)

No se requiere instalar un plugin para ejecutar consultas SQL, Excel ya lo trae de fabrica.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por fjpg (135 intervenciones) el 20/09/2019 12:01:34
Hola MIGUEL.

Funciona a la perfección. MUCHAS GRACIAS!!!

Una cosa.
He visto en el modulo "funciones" una variable que se llama "restar stock"
Supongo que será para utilizarla cuando haga el pedido de venta??

GRACIAS de nuevo!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de MIGUEL
Val: 424
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por MIGUEL (121 intervenciones) el 20/09/2019 15:22:37
Si, en ventas tendrás que usar los 2 procedimientos para que te muestre el stock exacto en tiempo real, si no se requiere con el restar stock es suficiente
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 286
Bronce
Ha mantenido su posición en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Registrar Compra y actualizar stock

Publicado por fjpg (135 intervenciones) el 20/09/2019 18:42:45
GRANDE MIGUEL.
GRACIAS!!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar