Bonsoir Cyril128
J'ai étudié la macro ainsi que les aménagements souhaitées et la voila modifiée.
J'espère que cela correspondra à tes souhaits ?
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim MyValue As Integer
Set sH = Sheets("FACTURE-SAISIE")
Set sh1 = Sheets("STOCKBLANC")
Set sh2 = Sheets("STOCKBRUN")
'If MsgBox("Voulez-vous mettre à jour automatiquement le stock ?" & vbNewLine & "Cette opération est irréversible.", vbYesNo + vbExclamation) = vbNo Then Exit Sub
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
On Error Resume Next
With sh1.Range("A6:A2000").Find(sH.Cells(l, 1))
If .Offset(0, 4) - sH.Cells(l, 7) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(l, 7)
Else
If .Offset(0, 3) - sH.Cells(l, 7) > 0 Then
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(l, 7)
Else
MyValue = MsgBox(" Stock insuffisant ! Voulez-vous continuer ?", vbYesNo + vbExclamation)
If MyValue = vbNo Then Exit Sub
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(l, 7)
End If
End If
End With
With sh2.Range("A6:A2000").Find(sH.Cells(l, 1))
If .Offset(0, 4) - sH.Cells(l, 7) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(l, 7)
Else
If .Offset(0, 3) - sH.Cells(l, 7) > 0 Then
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(l, 7)
Else
MyValue = MsgBox(" Stock insuffisant ! Voulez-vous continuer ?", vbYesNo + vbExclamation)
If MyValue = vbNo Then Exit Sub
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(l, 7)
End If
End If
End With
On Error GoTo 0
Next
End Sub
Cordialement
Bernard