C
cyril128
Guest
Bonjour,
J'ai un petit probleme avec une formule pour deduire automatiquement des stock.
J'ai cette formule qui fonctionne mais j'aimerais l'optimisé :
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk 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) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(1, 7)
Else
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(1, 7)
End If
End With
With sh2.Range("A6:A2000").Find(sH.Cells(l, 1))
If .Offset(0, 4) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(1, 7)
Else
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(1, 7)
End If
End With
On Error GoTo 0
Next
End Sub
Le probleme que je rencontre c quand je deduit une quantité superieur a 1, exemple 2 et que en stock il ne m'en reste 2,
il me marque -1 sans passer sur la cellule suivante (.offset(0, 3)
pour deduire cela me fausse le stock.
ce que j'aimerais c que arriver a zero sur .offset(0, 4) il passe a .offset(0,3) et quand .Offset (0.3) et a zero il me marque un message "stock insuffisant voulez vous continuer, oui, non"et si je marque oui, il recommence a me deduire dans .offset(0.4), -1 ;-2; -3 ect...
J'espere que j'ai bien formuler pour que tout le monde comprenne.
Merci par avance de votre aide.
J'ai un petit probleme avec une formule pour deduire automatiquement des stock.
J'ai cette formule qui fonctionne mais j'aimerais l'optimisé :
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk 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) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(1, 7)
Else
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(1, 7)
End If
End With
With sh2.Range("A6:A2000").Find(sH.Cells(l, 1))
If .Offset(0, 4) > 0 Then
.Offset(0, 4) = .Offset(0, 4) - sH.Cells(1, 7)
Else
.Offset(0, 3) = .Offset(0, 3) - sH.Cells(1, 7)
End If
End With
On Error GoTo 0
Next
End Sub
Le probleme que je rencontre c quand je deduit une quantité superieur a 1, exemple 2 et que en stock il ne m'en reste 2,
il me marque -1 sans passer sur la cellule suivante (.offset(0, 3)
pour deduire cela me fausse le stock.
ce que j'aimerais c que arriver a zero sur .offset(0, 4) il passe a .offset(0,3) et quand .Offset (0.3) et a zero il me marque un message "stock insuffisant voulez vous continuer, oui, non"et si je marque oui, il recommence a me deduire dans .offset(0.4), -1 ;-2; -3 ect...
J'espere que j'ai bien formuler pour que tout le monde comprenne.
Merci par avance de votre aide.