Cumul de valeurs

Bonjour

j'aimerais cumuler ( addition ou soustraction ) dans une cellule des valeurs inscrit dans une autre cellule je m'explique :

dans la cellule A1, je tape 100

je voudrais que dans la cellule B1 la mème valeur s'inscrit

j'efface dans A1 les 100 mais dans B1 les 100 restent affichés

je tape ensuite 200 dans A1, la valeur dans B1 doit être 200

je tape - 50 dans A1 la valeur B1 doit être 150

ainsi de suite

Y aurait-il une formule pour réaliser cela

merci de vos réponses

Bonjour le forum,

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1: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

Bonjour,

Une autre proposition.

Cdlt.

15jeanlou.xlsm (22.45 Ko)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldValue, newValue
    If Target.Address = "$A$1" Then
        With Application
            .EnableEvents = False
            newValue = Target
            .Undo
            oldValue = Target
            Target = newValue
            Select Case oldValue
                Case Is = vbNullString:  [B1] = newValue
                Case Else: [B1] = [B1] + newValue
            End Select
            .EnableEvents = True
        End With
    End If
End Sub

Bonjour

j'ai fait une erreur dans mon exposé, je le réédite

j'aimerais cumuler ( addition ou soustraction ) dans une cellule des valeurs inscrit dans une autre cellule je m'explique :

dans la cellule A1, je tape 100

je voudrais que dans la cellule B1 la mème valeur s'inscrit

j'efface dans A1 les 100 mais dans B1 les 100 restent affichés

je tape ensuite 200 dans A1, la valeur dans B1 doit être 300

je tape - 50 dans A1 la valeur B1 doit être 250

ainsi de suite

Y aurait-il une formule pour réaliser cela

merci de vos réponses

merci Jean-Eric pour votre réponse, malheureusement je ne comprend rien

Re,

Avec le code proposé :

cumuls

Re,

Touches ALT et F11

Copier le code proposé :

code

Re,

Dans le fichier joint, saisis la séquence de chiffres de ton message dans la cellule A1.

Quels ont les résultats ?

Cdlt.

Bonjour jeanlou,

Dans ton énoncé initial ainsi que dans ton post d'hier à 17:54, tu as écrit : « Y aurait-il une formule pour réaliser cela ? »

Non, ce n'est pas possible de réaliser ta demande par une simple formule, la seule solution est de passer par VBA, et même via une sub événementielle Worksheet_Change() ; c'est ce qu'ont fait d'abord mbbp, puis Jean-Eric, et je te confirme que les 2 solutions proposées font bien ce que tu veux ! tu peux même regarder la copie d'écran du message de mbbp daté d'hier à 18:02 pour t'en convaincre (3 états successifs des cellules A1 et B1).

Si vraiment ce n'est pas ça (mais j'en doute fort), à toi d'expliquer ce qui ne va pas : en quoi ce n'est pas le résultat attendu ?

s'il y a juste eu une méprise et que tout est ok, n'oublie pas de remercier mbbp et Jean-Eric, puis de passer ce sujet en résolu.

dhany

Bonsoir dhany

les réponses de Jean-Eric et mbbp font bien ce que je demande et je leurs en remercie mais comme je ne suis pas un AS d'excel ( je suis plutôt un âne ) , je ne comprend rien aux tableaux qu'ils me montrent donc je ne sait pas comment les utiliser

cordialement

Bonjour,

Pour ma part, tu n'as qu'à saisir des valeurs dans la cellule A1.

Comme tu l'as demandé !...

Maintenant, Que ne comprends-tu pas ?

Cdlt.

Bonsoir jeanlou,

Quel est le nom complet du fichier Excel que tu utilises actuellement, extension comprise ?

L'extension du nom de fichier est par exemple ".xlsm" ou ".xlsx" ; si c'est ".xlsx", il ne peut pas contenir de code VBA (macros) ; il faut alors convertir le fichier .xlsx en fichier .xlsm ; je t'indiquerai comment faire, sauf si ton fichier est déjà un .xlsm

Voici une remarque qui est valable seulement si ton fichier est un .xlsx : tu pourrais m'envoyer ton fichier et je ferai la conversion en .xlsm pour toi ; mais je crois que ce serait mieux que je t'indique comment faire toi-même cette conversion, car tu pourras alors faire cette opération chaque fois que tu en auras besoin.


Complément d'info : un fichier Excel version 97-2003 (et versions antérieures) est un fichier .xls ; et xls est pour excel sheet (feuille de calcul excel) ; un tel fichier .xls peut contenir des macros, mais c'est pas forcé.

À partir d'Excel 2007 (et versions ultérieures), le .xls s'est dédoublé en .xlsm (pour les classeurs Excel prenant en charge les macros), et en .xlsx (pour les classeurs Excel n'acceptant pas les macros).

dhany

Bonjour dhany

je travail avec excel 2007, mes fichiers sont en xlsx

cordialement

Bonjour jeanlou,

Dans ce cas, il faut convertir ton fichier xlsx en xlsm pour qu'il puisse contenir du code VBA ; sais-tu comment faire ?

ou tu préfères que je t'indique la marche à suivre ? tu peux aussi m'envoyer ton fichier, et je le convertirai en xlsm.

dhany

indique moi la marche à suivre

d'accord ; alors dans Excel, ouvre ton fichier xlsx ; puis sans rien changer, appuie sur la touche F12 ➯ fenêtre "Enregistrer sous" ; dans cette fenêtre, juste sous le nom de fichier, il y a "Type :" ; tu dois choisir dans la liste : « Classeur Excel (prenant en charge les macros) », puis valider : clic sur le bouton "Enregistrer" ou appui sur la touche Entrée.

c'est ça qui vient de faire la conversion en xlsm ; ton fichier xlsx de départ existe toujours, mais par précaution, avant de le supprimer, vérifie d'abord que ton fichier xlsm est OK : tu peux l'ouvrir, et tout y est bien ; la plupart du temps, y'a vraiment aucun problème ; mais 2 précautions valent mieux qu'une, surtout que si y'a des différences de versions d'Excel, ça peut entraîner des pertes de compatibilité plus ou moins importantes.

dis-moi quand tu seras arrivé à ce stade et je te dirai la suite.

dhany

ok c'est fait

en fichier joint ce que Jean-Eric ma envoyé

j'en fais quoi avec ??

Voilà, c'est ok :

8exo-jeanlou.xlsm (16.20 Ko)

À l'ouverture du fichier, B1 contient 0 et la cellule active est A1 ; à utiliser comme tu l'avais demandé : en A1, tape un nombre positif ou négatif, et appuie sur la touche Entrée ; la cellule B1 se mettra à jour automatiquement ; Alt F11 pour voir le code VBA, puis revenir sur Excel ; n'oublie pas de remercier Jean-Eric car c'est sa solution !

dhany

?? j'ai tapé un nombre dans A1 B1 reste toujours a 0

Dans ce cas, ça doit venir de ton paramétrage d'Excel ; vérifie cette option avancée :

selsensbas

dhany

je reviens dans un demi heure

Rechercher des sujets similaires à "cumul valeurs"