Macro,Entrée,Sortie,Stock et vendu

BrunoExcel2007

XLDnaute Nouveau
Bonjour,

Je cherche une Macro pour mon tableau Excel Entré,Sortie,Stock et vendu.
j'ai déjà eu une première partie de la macro (voir ci dessous) ,mais il me manque la partie de la cellule (Vendu) voir l'exemple en lien.
Je suis désolé si je ne suis pas très clair mais c'est mon premier Forum ,je ne sais pas trop comment m'y prendre.
Merci à vous.


Private Sub Worksheet_Change(ByVal Target As Range)

If Not IsNumeric(Target.Value) Then Exit Sub

If Not Intersect(Target, Range("E:F")) Is Nothing Then
'Deprotege
Range("G" & Target.Row).Value = IIf(Target.Column = 5, Range("G" & Target.Row).Value + Target.Value, _
Range("G" & Target.Row).Value - Target.Value)

End If
' Range("E" & Target.Row).Value = 0
' Range("F" & Target.Row).Value = 0
'Protege
End Sub


Merci à vous.
Bonne Journée
 

Pièces jointes

  • TutoTableau.xlsm
    14.6 KB · Affichages: 187
  • TutoTableau.xlsm
    14.6 KB · Affichages: 196
  • TutoTableau.xlsm
    14.6 KB · Affichages: 200

Bebere

XLDnaute Barbatruc
Re : Macro,Entrée,Sortie,Stock et vendu

bonjour Bruno
bienvenue
en E1:I1 que faut il mettre
supposé que E6:I6 =le total des entrées,sorties,vendus

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Count = 1 Then
        If Target.Row = 12 Or Target.Row = 26 Then

            If Target.Address = "$E$12" Or Target.Address = "$K$12" Or Target.Address = "$Q$12" Then
                'entrées ligne 12
                Target.Offset(, 2) = Target.Offset(, 2) + Target.Value    'stock
                Range("E6") = Range("E6") + Target.Value    'total entrée
                Range("G6") = Range("G6") + Target.Value    'total sortie
                Target.Value = ""
            End If
            'sortie
            If Target.Address = "$F$12" Or Target.Address = "$L$12" Or Target.Address = "$R$12" Then
                If Target.Offset(, 1) >= Target.Value Then
                    Target.Offset(, 1) = Target.Offset(, 1) - Target.Value    'sortie
                    Target.Offset(, 3) = Target.Offset(, 3) + Target.Value    'vendu
                    Range("F6") = Range("F6") - Target.Value
                    Range("G6") = Range("G6") - Target.Value
                    Range("I6") = Abs(Range("F6"))    'total vendu
                    Target.Value = ""
                Else
                    MsgBox "stock limité"
                End If
            End If

            If Target.Address = "$E$26" Or Target.Address = "$K$26" Or Target.Address = "$Q$26" Then
                'entrées ligne 26
                Target.Offset(, 2) = Target.Offset(, 2) + Target.Value    'total stock
                Range("E6") = Range("E6") + Target.Value    'total entrée
                Range("G6") = Range("G6") + Target.Value    'total sortie
                Target.Value = ""
            End If

            'sortie
            If Target.Address = "$F$26" Or Target.Address = "$L$26" Or Target.Address = "$R$26" Then
                If Target.Offset(, 1) >= Target.Value Then
                    Target.Offset(, 1) = Target.Offset(, 1) - Target.Value
                    Target.Offset(, 3) = Target.Offset(, 3) + Target.Value    'vendu
                    Range("F6") = Range("F6") - Target.Value
                    Range("G6") = Range("G6") - Target.Value
                    Range("I6") = Abs(Range("F6"))    'total vendu
                    Target.Value = ""
                Else
                    MsgBox "stock limité"
                End If
            End If

        End If
    End If

End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji