Somme cumulée sur une cellule

  • Initiateur de la discussion didicel13
  • Date de début
D

didicel13

Guest
Salut à tous

Je suis hyper debutant sous excel
Voilà mon problème :
Je souhaiterai que la valeur que je rentre à une cellule s'ajoute automatiquement à l'ancienne valeur.

exemple : s'il y a 6 en A1 et que je rentre 4 je souhaite voir afficher 10

Merci beaucoup pour votre aide
 
J

Jean-Marie

Guest
Bonjour, Didicel

Place ce code dans le module de la feuille, Pour le faire Alt+F11, pour aller dans VBA, doucle clique sur la feuille qui contient ta cellule, colle le code.

Modifie lu numéro de la Row (ligne) et de la Column (colonne), la cellule "A1", en fonction de la référence de la cellule.

Dim SavValeurA1 As Double

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If (ActiveCell.Row = 1) And (ActiveCell.Column = 1) Then
SavValeurA1 = Range("A1")
Range("A1") = 0
Else
Range("A1") = Range("A1") + SavValeurA1
SavValeurA1 = 0
End If
End Sub

Bonne journée

Quand les maîtres du VBA, vous passez, ils te proposeront d'autres solutions

@+Jean-Marie
 
D

didicel13

Guest
Merci pour ton aide.

Le code c'est cela ?

"Dim SavValeurA1 As Double

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If (ActiveCell.Row = 1) And (ActiveCell.Column = 1) Then
SavValeurA1 = Range("A1")
Range("A1") = 0
Else
Range("A1") = Range("A1") + SavValeurA1
SavValeurA1 = 0
End If
End Sub"

Et le module qu'est-ce que c'est en fait ?
 
J

Jean-Marie

Guest
Bonsoir

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
SavValeurA1 = Range("A1")
Range("A1") = 0
Else
Range("A1") = Range("A1") + SavValeurA1
SavValeurA1 = 0
End If
End Sub"

Adpate la plage à ton tableau

Bonne soirée

@+Jean-Marie
 
J

Jean-Marie

Guest
Bonjour

Le code que je t'avais donné ne pouvais pas fonctionner.
Voici le bon, pour une plage de 10*10 en commençant en cellule A1
Code à mettre dans les événéments de la feuille, (comme la première fois).

Option Explicit
Dim SavValeur As Double
Dim PreviousAddress As String

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)

If Not Application.Intersect(Target, Range("A1:J10")) Is Nothing Then
If PreviousAddress <> "" Then
Range(PreviousAddress) = Range(PreviousAddress) + SavValeur
SavValeur = 0
End If
SavValeur = ActiveCell.Value
ActiveCell = ""
PreviousAddress = ActiveCell.Address
Else
PreviousAddress = ""
End If
End Sub

Bonne journée

@+Jean-Marie
 

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 757
Membres
103 951
dernier inscrit
Misterb