bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:
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.
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:
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.
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:
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.
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:
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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news: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
ThenExit 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
"stockinsuffisant 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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:uVReGb7XEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uJv%23kv2XEHA.2868@TK2MSFTNGP09.phx.gbl...
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news: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
ThenExit 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
"stockinsuffisant 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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news: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
ThenExit 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
"stockinsuffisant 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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:uVReGb7XEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uJv%23kv2XEHA.2868@TK2MSFTNGP09.phx.gbl...
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news: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
ThenExit 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
"stockinsuffisant 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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" a écrit dans le message de
news:%Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentesd'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pasévident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui nefait pas le travail désiré.
Salutations!
"CYRIL254" a écrit dans le message de
news:OIYWv6$Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" a écrit dans le message de
news:%Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
ifj'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
detester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:Bonjour,
J'ai un petit probleme avec une formule pour deduire automatiquement
desstock.
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
ThenExit 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
a1,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
"stockinsuffisant 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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23QitAuCYEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la
"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentes
d'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pas
évident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui ne
fait pas le travail désiré.
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:OIYWv6$XEHA.2344@TK2MSFTNGP11.phx.gbl...
Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.
il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23vaN8l7XEHA.2364@TK2MSFTNGP12.phx.gbl...
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:uVReGb7XEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uJv%23kv2XEHA.2868@TK2MSFTNGP09.phx.gbl...
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" a écrit dans le message de
news:%Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentesd'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pasévident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui nefait pas le travail désiré.
Salutations!
"CYRIL254" a écrit dans le message de
news:OIYWv6$Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" a écrit dans le message de
news:%Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
ifj'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
detester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:Bonjour,
J'ai un petit probleme avec une formule pour deduire automatiquement
desstock.
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
ThenExit 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
a1,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
"stockinsuffisant 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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" a écrit dans le message de
news:%Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentesd'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pasévident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui nefait pas le travail désiré.
Salutations!
"CYRIL254" a écrit dans le message de
news:OIYWv6$Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" a écrit dans le message de
news:%Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
ifj'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
detester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:Bonjour,
J'ai un petit probleme avec une formule pour deduire automatiquement
desstock.
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
ThenExit 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
a1,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
"stockinsuffisant 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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23QitAuCYEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la
"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentes
d'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pas
évident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui ne
fait pas le travail désiré.
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:OIYWv6$XEHA.2344@TK2MSFTNGP11.phx.gbl...
Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.
il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:%23vaN8l7XEHA.2364@TK2MSFTNGP12.phx.gbl...
Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" <perso@cadeau.com> a écrit dans le message de
news:uVReGb7XEHA.3644@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
if
j'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" <michdenis@hotmail.com> a écrit dans le message de
news:uJv%23kv2XEHA.2868@TK2MSFTNGP09.phx.gbl...
bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
de
tester ...
'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" <cyril254@msnfps.com> a écrit dans le message de
news:e2gArh0XEHA.2364@TK2MSFTNGP12.phx.gbl...
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.
Bonsoir,
Je vous donne un classeur avec un exemple de ce que je veux faire
avec des explications plus claires.
Ce que je veux exactement c deduire les stocks qui sont dans les feuilles
STOCKBRUN et STOCK BLANC Automatiquement.
mais aussi quand ça arrive à zero dans la cellule reserve que ça decompte la
cellule expo.
ex : j'en ai deux a decompte il m'en reste un en expo et un en reserve ça
doit arriver à zero apres la deduction et si j'en ai 3 alors ca me marque 0
dans la cellule expo et -1 dans la cellule reserve.
Voila j'espere que vous allez trouver ca plus clair.
Merci et desolé si je me suis mal fait comprendre.
"michdenis" a écrit dans le message de
news:%Bonjour CYRIL254,
Les échanges se passent ici , au niveau du groupe de discussion. Si tu
n'as pas obtenu satisfaction à partir de la"traduction" que j'ai faite de ta procédure, relance tout en donnant des
explications précises sur ce que tu tentesd'exécuter ... il y a sûrement quelqu'un dans ce groupe capable de te
répondre ! Sans ces informations, il n'est pasévident d'essayer les "intentions" de l'auteur à partir seulement d'un
bout de code que l'auteur a fignolé et qui nefait pas le travail désiré.
Salutations!
"CYRIL254" a écrit dans le message de
news:OIYWv6$Cette fois si aucun message d'erreur mais parcontre le stock ne change
pas.il reste toujours a la quantité indiqué.
Si jamais je t'ai ajouté a ma liste messenger de msn, car je pense que je
ne pourrais jamais trouver tout seul.
Merci encore de ton aide si precieuse.
"michdenis" a écrit dans le message de
news:%Essaie ceci :
'------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
End If
For l = 13 To 22
If sH.Cells(l, 1) = "" Then Exit Sub
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'------------------------
Salutations!
"CYRIL254" a écrit dans le message de
news:Bonsoir,
Sa a l'air bien parti mais parcontre sa me marque une erreur with sans
ifj'essai de modifier un peu mais je trouve pas l'erreur :s
"michdenis" a écrit dans le message de
news:uJv%bonjour cyril254,
Voici j'ai réécrit la procédure...mais c'est loin d'être sûr que j'ai
compris ce que tu désirais faire !!
Pas tester .... n'oublie pas de te faire une copie de sauvegarde avant
detester ...'----------------------------------
Sub Impression()
Dim l As Integer
Dim sH, sh1, sh2 As Worksheet
Dim Stk As Integer
Dim Trouve As Range, Critere As Variant
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
Critere = sH.Cells(l, 1)
With sh1.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
With sh2.Range("A6:A2000")
Set Trouve = .Find(What:=Critere, _
LookIn:=xlFormulas, lookat:=xlWhole)
If Not Trouve Is Nothing Then
With Trouve
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
Else
On Error GoTo 0
End If
End With
Next
End Sub
'---------------------------------------------
Salutations!
"cyril254" a écrit dans le message de
news:Bonjour,
J'ai un petit probleme avec une formule pour deduire automatiquement
desstock.
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
ThenExit 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
a1,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
"stockinsuffisant 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.
Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:
Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
Tu as vraiment failli être Marseillais Jean Paul, à tout ezagérer ainsi !
--
Amicales Salutations
"sabatier" a écrit dans le
message de
news:j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
Tu as vraiment failli être Marseillais Jean Paul, à tout ezagérer ainsi !
--
Amicales Salutations
"sabatier" <biscotteUnScudJpsabatdelaile@wanadoo.fr> a écrit dans le
message de
news:40E5D67C.7050905@wanadoo.fr...
j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:
Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif
Tu as vraiment failli être Marseillais Jean Paul, à tout ezagérer ainsi !
--
Amicales Salutations
"sabatier" a écrit dans le
message de
news:j'ai dit en 10 000...tu vois bien que tout est bon pour toi, philippe,
pour me contrarier...
jps
Philippe.R a écrit:Bonsoir,
En un mot comme en mille :
http://www.excelabo.net/mpfe/extra-gif/fichiers-joints.gif