Soustraction

Bonjour
Je souhaite faire ceci
cellule A1= stock de 100
cellule B1= Réassort de 50
Cellule C1 = total de A 1et B 1 soit 150 en stock

cellule D 1 = je soustrais 10 de la cellule C 1 = 140
cellule D 1= je soustrais 20 de la cellule C 1= 120

Mon problème... comment faire pour que la cellule D1 redevienne vierge à chaque fois, pour une nouvelle saisie qui viendra également incrémenter la sortie en C1

Merci par avance à ceux qui parviendront à comprendre mon souhait et à m'aider

1 réponse

  1. Bonjour ulrij

    Macro à mettre dans le worksheet de la feuille concernée (ALT + F11 pour ouvrir l'éditeur VBA puis double clic sur nom de la feuille dans l'arborescence puis copier et coller la macro dans la page blanche et refermer l'éditeur

    Private Sub Worksheet_Change(ByVal Target As Range)
    ' verifie que c'est la valeur en D1 qui a changé
    If Not Intersect(Target, Range("D1")) Is Nothing Then
    'et si c'est le cas :
    'effectue la soustraction et met le resultat en C1
    Range("C1") = Range("C1").Value - Range("D1").Value
    ' Affiche 0 en D1
    Range("D1") = 0
    End If
    End Sub


    Cdlmnt
    0
    1. bonsoir, via55,

      ne faudrait-il pas suspendre la gestion des évènements dans le if?

      cordialement
      0
    2. @JvDoBonsoir JvDo

      Que veux tu dire ?
      0
    3. je parle de :

      If Not Intersect(Target, Range("D1")) Is Nothing Then
      Application.EnableEvents=False
      Range("C1") = Range("C1").Value - Range("D1").Value
      Range("D1") = 0
      Application.EnableEvents=True
      End If

      pour éviter que la procédure ne s'appelle elle-même

      cordialement
      0
    4. @JvDoOui OK tu as raison

      Cdlmnt
      0