¿Cómo válido si hay existencia en un campo para que si el valor ingresado es inferior arroje error? Excel

Estoy creando un programa de facturación básico en Excel, tengo una tabla para las entradas de almacén de cada Item "EA" y uno para los saldos de inventario "INV" en el cual al realizar la venta desde la tabla facturación "FAC" se descuenta de la cantidad existente, el problema es que me deja facturar en negativo (Si existencia esta en 0 o el valor es superior al existente deja guardar la venta) y quiero que cuando yo ingrese un valor en el campo de "Cantidad" en "AFC" de "x" ítem se valide si ese valor es inferior a los disponibles en el campo de existencias o de lo contrario arroje error, ¿Alguna ayuda para como validar?

1 respuesta

Respuesta
1

La captura la estás haciendo con un userform o estás capturando en una hoja. Quieres que la validación sea con una macro.

Envíame tu archivo para revisarlo y me explicas dónde capturas, en dónde está el código y su existencia.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Mauricio Vergara

Ya te lo envíe, te agradezco la atención y espero ser claro en el detalle que busco.

Tienes que poner el siguiente código en los eventos de la hoja "facturación"

'Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    Set rango = Range("C14:C19")
    If Not Intersect(Target, rango) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Value = "" Or Target.Value = 0 Then Exit Sub
        '
        If Cells(Target.Row, "B") = "" Then
            MsgBox "Debes capturar un código para validar la cantidad"
            Target.Value = ""
            Target.Select
            Exit Sub
        End If
        '
        Set h = Sheets("Inventario")
        Set b = h.Columns("A").Find(Cells(Target.Row, "B"), LookIn:=xlValues, lookat:=xlWhole)
        If Not b Is Nothing Then
            existencia = h.Cells(b.Row, "E")
            codigo = Target.Offset(0, -1)
            cantidad = WorksheetFunction.SumIf(rango.Offset(0, -1), codigo, rango)
            If cantidad > existencia Then
                MsgBox "La cantidad es mayor a la existencia"
                Target.Value = ""
                Target.Select
            End If
        Else
            MsgBox "El código no existe. Debes capturar un código válido"
            Target.Value = ""
            Target.Offset(0, -1).Select
        End If
    End If
End Sub


Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

.

.

La pregunta no admite más respuestas

Más respuestas relacionadas