Jump to content
Manuyes

error con las validaciones

Recommended Posts

Hola a [email protected],

                         necesito una pequeña ayuda con un nuevo proyecto. Estaba haciendo un pequeño archivo para gestionar un almacén, pero me he atascado con las validaciones, para evitar meter errores, como que saque del almacén, más productos de los que existen. Es decir, si tengo 15 productos y quiero sacar 22, me saca un msgbox indicando que no puedo sacar más productos de los que quedan. Hasta ahí funciona bien, pero cuando pongo después una cantidad menor me sigue mostrando el msgbox. supongo que el error estará aquí.

  For Fila = 2 To 1000
        If Hoja4.Cells(Fila, 1) = Hoja3.Cells(Final, 2) Then
            Existencia = Hoja4.Cells(Fila, 3)
            If Me.TextBox5 > Me.TextBox4 Then
            MsgBox (" No puedes dar de baja mas productos de los que hay cargados")
            Exit Sub
            Else
            Total = Existencia - Me.TextBox5
            Hoja4.Cells(Fila, 3) = Total
            Exit For
            End If
        End If
    Next

La otra duda, es que me gustaría que en el listBox1 me fuera mostrando los movimientos que voy haciendo mientras tengo abierta la aplicación, por si tuviera que deshacer alguno cargado por error. Había pensado en que creara una hoja en la que fuera guardando los movimientos temporalmente y la borrara después de darle al botón actualizar. No se si alguien tiene otra sugerencia mejor

 

Control Almacen_1.xlsm

Share this post


Link to post
Share on other sites

Hola @Manuyes,

No me sale ese error, con el código que tienes para no hacer muchos cambios solo separa el codigo para que las validaciones vayan al principio del SUB.

'---------Valida que No sea mayor las Salidas que las Existencias
    If Me.TextBox5 > Me.TextBox4 Then
        MsgBox (" No puedes dar de baja mas productos de los que hay cargados")
        Exit Sub
    End If
   
'.......ACTUALIZA...
    For Fila = 2 To 1000
        If Hoja4.Cells(Fila, 1) = Hoja3.Cells(Final, 2) Then
            Existencia = Hoja4.Cells(Fila, 3)
            Total = Existencia - Me.TextBox5
            Hoja4.Cells(Fila, 3) = Total
            Exit For
        End If
    Next

Y lo de rehacer los cambios, en ese caso deberías de poner en el ListBox de abajo todo lo que vas haciendo y al final lo validas con un botón. Aunque es mejor y más rápido hacerlo directo y no estar revisando información de en los ListBox, ya que aquí se ve práctico pero cuando tienes mucha información es cuando se vuelve tedioso con tanta información a la vista. Es mejor fijarse en lo que estas haciendo en cada movimiento.

Saludos.

Share this post


Link to post
Share on other sites

Muchas gracias @Leopoldo Blancas, he probado como dices pero me sigue dando problemas. Lo curioso es que sólo me pasa cuando intento eliminar el producto "destornilladores planos", con este producto si pongo más de uno, me salta el msgbox. También he visto que cada vez que hago un intento me lo graba en la hoja salidas, aunque salga el msgbox y no reste nada. Tengo que revisar el botón salidas.

Lo del listbox, para ir registrando el histórico, creo que tienes razón y no merece la pena. Siempre puedes sacar un informe de movimientos de ese día. Creo que lo voy a descartar.

 

He hecho una pequeña modificación en el listbox de las existencias, gracias a una respuesta de @Gerson Pineda  a otra pregunta en el foro, ahora al hacer doble click a un elemento del listbox carga los datos en los textbox para añadir o eliminar del formulario.

 

Control Almacen_2.xlsm

Share this post


Link to post
Share on other sites

Bien, lo que si estaría bien que hicieras es una búsqueda de productos, por ejemplo al digitar en el TextBox "Código" o en el combobox Producto... Por que en el ListBox si lo tienes a la vista nada mas le das Click y ya lo tienes... pero si no esta a la vista?

Saludos.

Share this post


Link to post
Share on other sites
Hace 27 minutos , Manuyes dijo:

Muchas gracias @Leopoldo Blancas, he probado como dices pero me sigue dando problemas. Lo curioso es que sólo me pasa cuando intento eliminar el producto "destornilladores planos", con este producto si pongo más de uno, me salta el msgbox. También he visto que cada vez que hago un intento me lo graba en la hoja salidas, aunque salga el msgbox y no reste nada. Tengo que revisar el botón salidas.

A mi no me sale ese error que comentas.

Saludos.

Share this post


Link to post
Share on other sites
Hace 6 horas, Leopoldo Blancas dijo:

Bien, lo que si estaría bien que hicieras es una búsqueda de productos, por ejemplo al digitar en el TextBox "Código" o en el combobox Producto... Por que en el ListBox si lo tienes a la vista nada mas le das Click y ya lo tienes... pero si no esta a la vista?

Saludos.

Pero esto que comentas ya lo hace.

Puedes buscar el producto de las tres formas, tecleando el código, usando el combobox y con el doble click en el listado.

Quizás no te haya entendido

Share this post


Link to post
Share on other sites

Gracias @Antoni, @Leopoldo Blancas, había un error aquí

'.......ACTUALIZA...    

For Fila = 2 To 1000        

If Hoja4.Cells(Fila, 1) = Hoja3.Cells(Final, 2) Then            

Existencia = Hoja4.Cells(Fila, 3)

lo he cambiado por Me.TextBox1 y ahora parece que funciona.

@Antoni, tienes todo mi respeto, se que mis conocimientos son muy modestos, así que no me ofendo.

Tienes un par de días o los que necesites, siempre me encanta ver tu solución. 

Muchas gracias a los dos.

 

 

Share this post


Link to post
Share on other sites

Hola @Manuyes, te modifique un poco el código, y respetando un poco tu forma de trabajar para que le entiendas más rápido, incluí nueva forma de buscar el código y traer los datos, Fíjate como cargo el ListBox y el ComboBox y como hago las búsquedas, etc. Al cambiar en TextBox1 se actualizan los demas controles...

Prueba y me comentas.

Tambien hice anotaciones en el código.

Saludos.

Control Almacen_LBV.xlsm

Share this post


Link to post
Share on other sites

Hola @Leopoldo Blancas

                           te lo agradezco mucho tu tiempo y los comentarios. Como esto lo hago por afición y no es algo que haga a diario, intento comentar todo lo posible el código, habrá quien le parezca que comento "cosas de Perogrullo", pero a lo mejor me tiro dos o tres meses sin volver a tocarlo y cuando vuelvo a mirarlo si no lo he comentado me cuesta un poco más de tiempo entender lo que había hecho.

    He probado tu versión, y me sigue dando el mismo error  (Ya no se si es mi ordenador, me pasa tb con la versión de @ateneo...:(),lo miraré con calma el domingo por la noche.

Almacen_LPB.jpg

Share this post


Link to post
Share on other sites

Es cierto, pero la ultimas modificaciones no las guarde y te envié el archivo mal, ya lo revise y te lo mando corregido.

La modificación importante que hice fue en el Botón de Salidas:

If CLng(Me.TextBox5) > CLng(Me.TextBox4) Then

que CLng convierte a valor LONG (Número Largo) lo que esta dentro del paréntesis. Sin CLng trata al valor como texto lo que hay en los TextBox.

Saludos.

P.D.: Yo también lo hago por afición "Hobby" y no importan los comentarios, yo también los pongo y más cuando son cosas que no manejo y de esa forma me es más fácil seguir el código. El chiste es que tu le entiendas. Hice mas anotaciones para que las leas y revises.

Share this post


Link to post
Share on other sites

Muchas gracias a los tres, he aprendido muchas cosas.

@ateneo, tu versión me daba errores, pero agradezco mucho tu interés.

@Leopoldo Blancas, lo he estado probando y funciona perfectamente, gracias de nuevo por las aclaraciones.

@Antoni, decía que podía esperar, porque tus versiones suelen sorprenderme y así ha sido. La verdad es que no tenia mucho sentido tener hoja productos y existencias, mejor unificarlas. Tal y como lo has planteado es lo que yo quería hacer desde el principio (incluso mucho mejor que mi idea inicial...), Yo no lo habría conseguido, por eso renuncie a la idea del histórico de movimientos.... Te agradezco mucho tu tiempo dedicado. Sólo he visto, después de probarlo, que seria interesante un botón para dar de baja los productos, pero ya me pegaré mañana con ello. Por mi parte se puede cerrar el tema triplemente solucionado

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.



×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png