Additionner dans la même cellule

Bonjour

J'ai réussi à créer ce code ,mais il ne me donne pas la bonne solution

je voudrais qu'a chaque fois que je rentre un chiffre dans A6 que le total s'accumule dans A6

Je vous remercie pour votre aide

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A6]) Is Nothing Then
        Application.EnableEvents = False
            [A6] = [A6] + [A6]
        Application.EnableEvents = True
    End If
End Sub

Bonjour,

C'est normal, quand la procédure se lance, le classeur à déjà "oublié" la valeur précédente de la cellule. Il faut donc l'enregistrer quelque part, par exemple une autre cellule, et ensuite lire cette ancienne valeur pour faire l'addition.

Un exemple avec incrément de la cellule A1 et sauvegarde du résultat en B1

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("a1")) Is Nothing Then
        Application.EnableEvents = False
' incrément de A1
            Target.Value2 = Range("b1").Value2 + Target.Value2
' sauvegarde en b1
            Range("b1").Value2 = Target.Value2
        Application.EnableEvents = True
    End If
End Sub

Bonjour Joco7915, saboh12617,

C'est faisable en utilisant les événements "Worksheet_SelectionChange" pour stocker la valeur présente dans la cellule au moment de la sélection de la cellule et "Worksheet_Change" pour additionner la valeur sauvegardée à celle saisie et en désactivant la gestion événementielle pour ne pas rentrer dans une boucle d'auto incrémentation.

MAIS je ne préconise pas car si :

  • tu entres en modification par exemple avec F2 et que tu valides, la valeur de la cellule sera doublée
  • tu ouvres le classeur, que cette cellule était active au moment de la fermeture et que tu modifies le montant => l'ancien montant ne sera pas incrémenté mais écrasé. L'événement Worksheet_Activate ne permet pas de contourner ce problème.

Cdlt,

Cylfo

Rechercher des sujets similaires à "additionner meme"