Cumuler des données dans une meme cellule

Bonjour à tous

je souhaiterai cumuler les mises à jour des données de la colonne B sur la colonne A.

je développe:

j'ai des données dans la colonne B que je met à jour tous les jours par une rechercheV et je souhaiterai qu'un cumule se fasse en colonne A .

Avez vous une solution?

Merci de votre aide

Bonjour le forum,

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B1:B100")) Is Nothing Then
    If Target.Count = 1 Then
        Application.EnableEvents = False
        Target.Offset(0, -1).Value = Val(Target.Offset(0, -1).Value) + Val(Target.Value)
        Application.EnableEvents = True
    End If
End If
End Sub

Merci beaucoup.

et si je souhaite changer les colonnes (ex : les données de la colonne T cumulées en colonne N)

mbbp a écrit :

Bonjour le forum,

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B1:B100")) Is Nothing Then
    If Target.Count = 1 Then
        Application.EnableEvents = False
        Target.Offset(0, -1).Value = Val(Target.Offset(0, -1).Value) + Val(Target.Value)
        Application.EnableEvents = True
    End If
End If
End Sub

Merci pour votre code

Par contre quand je modifie ma base la recherchV prend bien en compte la modif en revanche la colonne du cumul ne se met a jour automatiquement.

le cumul se fait que lorsque je tape les données manuellement.

Saisie en colonne T & Cumul en colonne N :

If Not Intersect(Target, Range("T1:T100")) Is Nothing Then

Target.Offset(0, -6).Value = Val(Target.Offset(0, -6).Value) + Val(Target.Value)

Merci pour votre code

Par contre quand je modifie ma base la recherchV prend bien en compte la modif en revanche la colonne du cumul ne se met a jour automatiquement.

le cumul se fait que lorsque je tape les données manuellement.

Laliz a écrit :

Merci pour votre code

Par contre quand je modifie ma base la recherchV prend bien en compte la modif en revanche la colonne du cumul ne se met a jour automatiquement.

le cumul se fait que lorsque je tape les données manuellement.

J'essaie de trouver le problème mais je ne trouve pas

Bonjour,

Avec un bouton ou Alt-F8 :

Public Sub MAJ()
    Dim cellule As Range
    Dim finT As String
    finT = Range("T" & Rows.Count).End(xlUp).Address
    For Each cellule In Range("T1:" & finT)
        cellule.Offset(0, -6).Value = Val(cellule.Offset(0, -6).Value) + Val(cellule.Value)
    Next
End Sub
32cumul.xlsm (18.68 Ko)
oyobrans a écrit :

Bonjour,

Avec un bouton ou Alt-F8 :

Public Sub MAJ()
    Dim cellule As Range
    Dim finT As String
    finT = Range("T" & Rows.Count).End(xlUp).Address
    For Each cellule In Range("T1:" & finT)
        cellule.Offset(0, -6).Value = Val(cellule.Offset(0, -6).Value) + Val(cellule.Value)
    Next
End Sub

Bonjour ,

Je suis à la recherche d'une solution pour un problème similaire.

Je déterre donc ce topic.

Cette solution corresponds presque parfaitement à ma demande ,

Sauf que je n'ai pas besoin de mettre à jour l'ensemble de la colonne en même temps , mais uniquement des lignes que je viens de modifier.

je souhaiterai donc que la formule mette à jour uniquement les lignes ou les données de la colonne T ont évoluée.

Je ne sais pas si cela est faisable ....

Merci de votre aide.

Bonsoir,

Si tu modifies tes cellules manuellement, tu peux t'inspirer du code de mbbp :

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("B1:B100")) Is Nothing Then
    If Target.Count = 1 Then
        Application.EnableEvents = False
        Target.Offset(0, -1).Value = Val(Target.Offset(0, -1).Value) + Val(Target.Value)
        Application.EnableEvents = True
    End If
End If
End Sub
 

Ça ne va cumuler que sur la ligne de la cellule venant d'être modifiée, la macro détectant la cellule impactée à chaque modification sur la feuille.

Merci pour la réponse.

J'essayerai ça demain.

Les donnes des cellules de la colonne sont issu de formule, "si" en l'occurrence.

Je sais je cherche compliqué ! .

Si tu obtiens tes résultats avec des formules, il faut que tu précises quel est le critère à prendre en compte pour l'actualisation, ma réponse précédente ne convient pas. Joins un fichier exemple pour le mieux.

Merci pour ton aide ,

En PJ en fichier simple reprenant ce que je souhaiterai.

Il s'agit de suivre un parc automobile.

En colonne D j'aimerai que ce cumul les données.

Si le cumul doit se faire dans la colonne "C" je prends aussi !

Merci pour ton aide !

12test-cumul.xlsx (14.37 Ko)

Bonjour, en supposant que les km soient cumulés pour chacun des véhicules. Une proposition avec tableau, une autre avec plage.

J'ai du mal avec ta formule : pour a, b, c, d et e, ok, mais si égal à f, alors 0 sinon 1 ??? Tu peux stocker les destinations si elles si leur nombre est limité.

14test-cumul.xlsx (18.08 Ko)

Dans ma formule 0 pour f veut dire qu'il est "à domicile" , pour le 1 ben heu ... Je savais pas comment finir ma formule en faite ! lol

Je viens de regarder tes tableaux merci cela fonctionne parfaitement de cette façon !

Juste une question avant d'arrêter de t’embêter avec ça.

Dans ta solution je dois rentrer une nouvelle ligne par destination , ne serait-ce pas possible de faire:

_une ligne par véhicule

_changer la destination dans cette ligne uniquement , (effaçant du coup la destination précédente )

_le cumul se fasse sur cette même ligne.

Je pense que c'est certainement compliqué voir impossible

En tout cas merci , je vais étudier de près les formules de ton fichier , afin d'essayer de comprendre les formules utilisées "indirect" et "index" et autre fonction qui sont dedans que je connais absolument pas !

Rechercher des sujets similaires à "cumuler donnees meme"