Al realizar el llenado de factura, al elegir un producto que ya no hay en existencia, mostrar mensaje.

Dentro de la macro que me hace actualizar la entrada de cantidad y que también hace la salida de ese producto en la hoja de inventario quiero que al momento de que se vaya eligiendo el producto el cual en la celda mostrara una lista desplegable de los varios productos que existen, muestre un mensaje al elegir ese producto que ya no está en existencia, entonces al mostrar ese mensaje, que vuelva a elegir de esa lista otro producto, para continuar haciendo el llenado de la factura.

1 Respuesta

Respuesta
1

H o l a:

Te anexo la macro para verificar las existencias cuando estás capturando.

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Target.Row < 16 Then Exit Sub
    If Not Intersect(Target, Range("A:F")) Is Nothing Then
        If [G9] = "Ventas" Then
            If Cells(Target.Row, "B") = "" Then Exit Sub
            Set h3 = Sheets("Inventarios")
            Set b = h3.Columns("B").Find(Cells(Target.Row, "B"), lookat:=xlWhole)
            If Not b Is Nothing Then
                existencia = h3.Cells(b.Row, "G")
                If existencia = 0 Then
                    MsgBox "El producto no tiene existencias. Selecciona otro producto", vbExclamation, "SALIDAS"
                    Application.EnableEvents = False
                    Cells(Target.Row, "B") = ""
                    Cells(Target.Row, "B").Select
                    Application.EnableEvents = True
                    Exit Sub
                End If
                If Cells(Target.Row, "F") > existencia Then
                    MsgBox "El producto no tiene suficientes existencias. " & vbCr & _
                           "Selecciona otro producto o una cantidad hasta: " & existencia, vbExclamation, "SALIDAS"
                    Application.EnableEvents = False
                    Cells(Target.Row, "F") = ""
                    Cells(Target.Row, "F").Select
                    Application.EnableEvents = True
                    Exit Sub
                End If
            Else
                MsgBox "El producto no existe. Selecciona otro producto", vbExclamation, "SALIDAS"
                Application.EnableEvents = False
                Cells(Target.Row, "B") = ""
                Application.EnableEvents = True
            End If
        End If
    End If
End Sub

La macro se tiene que poner en los eventos de la hoja.

S a l u d o s . D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

Excelente Dante, pero esta macro no afecta a la macro del botón verdad, donde se acumula los datos de la factura y actualiza la entrada y salida de la cantidad de productos en inventario

No afecta.

Esta macro solamente valida que la información que vas a sacar sea correcta.

El botón se encargará de realizar la salida.

Gracias Dante, pasaba por mi mente, igual es una locura pero, ya el programa en si de factura, se puede añadir, anexar o como llamarlo, ahmm, es decir, si dentro de una página web se puede hacer que el programa se ejecute dentro de ella o sea como una opción, ¿o algo así?, solo para tener conocimiento

Sí se puede compartir, para ello revisa documentación sobre compartir archivos de excel

Te dejo un enlace:

https://support.office.com/es-es/article/Utilizar-un-libro-compartido-para-trabajar-en-colaboraci%C3%B3n-b8207fe9-a613-483f-b804-0ca4658b0c61 

Pero puedes buscar más información en la red, también en youtube.

Gracias por la información Dante, se puede mejorar y creo que si, ¿este programa de factura?, ¿No se igual puede ser que se pulen más detalles o tener otro tipo de visualización verdad?

Se vino a mi mente, hay manera de proteger, ocultar las macros, ¿así cómo las fórmulas del consultav? ¿Para qué nadie meta mano ni modifique o simplemente para que nadie sepa como se hizo? No por ser egoísta sino por protección en si del programa!

Sí hay forma y con gusto te ayudo con tus dudas. Crea una pregunta nueva por cada petición.

¡Gracias! Dante! Y lamento la tardanza de la respuesta, solo que ando vuelta loca con otro problema de recuperar información y me estoy frustrando :S, ja ja, gracias de verdad por todo!

La pregunta no admite más respuestas

Más respuestas relacionadas