Sommes successives dans une cellule

Bonjour,

je désire faire un fichier qui me permette d'encoder des résultats d'un jeu sur un fichier Excel

Les résultats s'encodent dans une colonne que j’appellerai "A". Ces résultats se copient dans une autre colonne "B" .

Quand j'encode de nouveaux résultats dans la colonne "A", je voudrais qu'ils viennent s'ajouter au nombres déjà présents dans les cellules de la colonne "B"

Si un résultat est encodé en A1 , le résultat en B1 est = B1+A1 .

Cela me donne une référence circulaire bien entendu . J'ai réussi à contourner le problème en activant le calcul itératif avec un nombre d'itération de 1 . Cela fonctionne mais en enregistrant le classeur le calcul se fait une deuxième fois .

Existe-t-il un autre moyen pour faire une addition dans une cellule en conservant la valeur précédente ?

j'espère avoir été clair pour ma première question sur votre forum.

Merci d'avance

Jean - Christophe

Bonjour,

en VBA :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Row > 1 Then
        Application.EnableEvents = False
        Target.Offset(, 1) = Target.Offset(, 1) + Target
'        Target.ClearContents ' s'il faut effacer la saisie en A
        Application.EnableEvents = True
    End If
End Sub

eric

6classeur1.xlsm (15.00 Ko)

Bonjour,

en VBA :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Row > 1 Then
        Application.EnableEvents = False
        Target.Offset(, 1) = Target.Offset(, 1) + Target
'        Target.ClearContents ' s'il faut effacer la saisie en A
        Application.EnableEvents = True
    End If
End Sub

eric

Merci pour votre réponse rapide . Je vais tester la macro dans ma feuille de calcul .

Bonne soirée

Bonjour Eric,

Etant assez nouveau dans le monde du vba , j'ai mis un certain temps a intégrer ce code à ma feuille de calcul . Mais j'ai fini par comprendre grâce aux cours de débutants du site .( Merci à ceux qui prennent le temps de rédiger tout cela )

Une dernière question . Si je veux appliquer cette macro à plusieurs colonnes non adjacentes comment doit-on l'écrire dans la ligne

If Target.Column = 1 And Target.Row > 1 Then

Jean-Christophe

Bonjour,

c'est bien, tu as essayé d'être autonome

Si saisie en colonne impaires de A:F :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [A:F]) Is Nothing And Target.Row > 1 Then
        If Target.Column Mod 2 = 1 Then
            Application.EnableEvents = False
            Target.Offset(, 1) = Target.Offset(, 1) + Target
            ' Target.ClearContents ' s'il faut effacer la saisie
            Application.EnableEvents = True
        End If
    End If
End Sub

Si ça peut être un collé de plusieurs valeurs il faudra compliquer un peu le code.

Mais le problème avec ces systèmes, c'est que tu n'as aucun historique de tes saisies. En cas d'erreur tu as intérêt à savoir quelle touche tu as appuyée par erreur, ou quel était le résultat avant... Pas très fluide du coup.

eric

Rechercher des sujets similaires à "sommes successives"