Duda para aplicar un MsgBox en una Macro de Stock

Tengo un gran problema, espero poder obtener su ayuda! En una hoja tengo 4 columnas, en la C la descripción del producto, en la G el Stock, en la H las entradas y en la I las salidas. Esta hoja responde al siguiente Macro:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'controla col H (Entradas) actualizando col G (STOCK)
If Not Intersect(Target, Range("H27:H2000")) Is Nothing Then
Target.Offset(0, -1) = Target.Value + Target.Offset(0, -1).Value
Target.Offset(0, 0).ClearContents
'controla col I (Salidas) actualizando col G (STOCK)
ElseIf Not Intersect(Target, Range("I27:I2000")) Is Nothing Then
Target.Offset(0, -2) = Target.Offset(0, -2).Value - Target.Value
Target.Offset(0, 0).ClearContents
End If
End Sub
El problema es que para salvar cualquier error frente a un valor mal cargado, necesito que cada vez que entro una entrada o una salida me salga un mensaje que me diga: se han ingresado "X" cantidad de piezas al stock o para el caso de salidas : se han descontado "X" cantidad del Stock. Obviamente que en la "X" me salga la cantidad que ingreso.
Espero su respuesta... Muchas Gracias! Saludos...

2 respuestas

Respuesta
1
Do While ActiveCell.Value <> ""
X = MsgBox("Desea Ingresar " & CANTIDAD & " piezas al Stock.", vbYesNo + vbQuestion, "Opción")
    If X = vbYes Then
        Target.Offset(0, -1) = Target.Value + Target.Offset(0, -1).Value
        Target.Offset(0, 0).ClearContents
    Else
        Target.Offset(0, 0).ClearContents
    End If
Loop
Estúdialo y adáptalo.
Intenté con algo así... pero el problema es que el MsgBox se me repite para cada fila de la hoja... : (
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim CANTIDAD As Integer
'controla col H (Entradas) actualizando col G (STOCK)
If Not Intersect(Target, Range("H27:H2000")) Is Nothing Then
CANTIDAD = Target.Value
X = MsgBox("Desea Ingresar " & CANTIDAD & " piezas al Stock.", vbYesNo + vbQuestion, "Opción")
    If X = vbYes Then
        Target.Offset(0, -1) = Target.Value + Target.Offset(0, -1).Value
        Target.Offset(0, 0).ClearContents
    Else
        Target.Offset(0, 0).ClearContents
    End If
'controla col I (Salidas) actualizando col G (STOCK)
ElseIf Not Intersect(Target, Range("I27:I2000")) Is Nothing Then
CANTIDAD = Target.Value
X = MsgBox("Desea Descontar " & CANTIDAD & " piezas al Stock.", vbYesNo + vbQuestion, "Opción")
    If X = vbYes Then
        Target.Offset(0, -2) = Target.Offset(0, -2).Value - Target.Value
        Target.Offset(0, 0).ClearContents
    Else
        Target.Offset(0, 0).ClearContents
    End If
End If
End Sub
Muchas gracias por tu colaboración... pero no logor hacerlo funcionar... esto ya me esta preocupando! : (
Solo tienes que poner las instrucciones que te dejé.
Respuesta

En el link explico paso a paso como crear un msgbox, te paso el link por si te es útil

http://www.programarexcel.com/2013/10/como-crear-un-msgbox-vba-en-excel.html 

En http://programarexcel.com encontrarás muchos ejemplos que usan msgbox.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas