Addition permanente

bonjour

je voudrais créer un tableau simple de 3 colonnes

la premiere je rentre ma ref produit

la troisieme va additionner et garder en memoire chaque fois que je rentre une valeur dans la deuxieme

pour faire simple

ref valeur du jour total en memoire

825366 20 20

si ensuite j'ecris 25 sur la valeur du jour a la place de 20 sur la meme ref je dois obtenir 45 sur la colonne total en memoire

merci

Bonjour et bienvenue,

Il serait préférable de mettre un fichier excel même très simplifié

Une solution (à confirmer avec le fichier) est d'utiliser un TCD. Sinon les formules SOMMEPROD ou SOMME.SI.ENS peuvent répondre.

ci joint l'exemple parfait de ce que je souhaite

je suis nul en excel dsl

Ben, cela fonctionne ! c'est parfait ... ou alors le résultat n'est pas conforme à ton souhait ?

oui c parfait mais c'est un exemple récupérer sur le net et j'ai besoin de beaucoup de ligne et il n'y a ni formule ni possibilité d'allonger les colonnes

Pour élargir à toute la colonne B sauf le titre

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Columns("B")) Is Nothing Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value

End Sub

merci STEELSON, c'est parfait

j'ai peut etre une autre requete

je crée sur la gauche une colonne référence le hic c'est que je vais rentrer des référence a la volé et refaire le tri du plus petit au plus grand et la colonne total ne correspond plus

je recharge le tableau

Pour que la colonne soit conservée en regard des références, il ne faut pas que les colonnes C D E F soient vierges.

Mets au moins un titre

merci Steelson

en fait je voulais une macro pour trier automatiquement du plus petit au plus grand les references que je rentre en colonne A a la volée et que les colonnes B et G se réorganisent en fonction.

si je rentre

715200

714350

725290

700114

quand je fais entrée a chaque ligne tout se reclasse tout seul

Pour moi, il suffit de cliquer sur le bouton AZ (donc le bouton que tu souhaites existe déjà) ... mais à nouveau il faut des titres pour les colonnes de A à G.

On pourrait faire une macro événementielle, mais une fois la référence A entrée tu n'aurais même plus le temps de rentrer la valeur en B car A se serait fondu dans la colonne.

capture d ecran 310

oui tu as raison je vais faire le tri comme ca

je n'avais pas pensé que ma ref serait perdue dans l'ensemble avant meme de remplir

et oui j'ai nomé toute mes colonnes A-G

merci beaucoup Steelson c'est tout bon

bonjour

j'ai un autre probleme

je souhaite supprimer les doublons en colonne A

explication:

je rentre une serie de ref

721783

725869

710568

718268

et plus encore

j'ai donc rempli 40 ligne aujourd'hui par exemple

demain si je saisi une nouvelle liste de ref et que j'ai déjà ces memes ref dans le tableau

il faudrait que la ref se supprime apres avoir ajouté les valeurs en colonne B et le Total en colonne G

j'espere que c'est assez clair

je remets le tableau

merci d'avance

Que devient ce qui a été ajouté en colonne B ?

je pense qu'elle doit revenir a 0

je te rempli mon tableau avec des exemple concret et je le remet en ligne

ligne 14et ligne 22 j'ai la meme ref et une entrée pour chaque

l'idée c'est de détecter la ref ligne 22 comme déjà existante et la valeur entrée en B s'additionne en G et la ligne 22 se libère a 0

on retrouverait donc en ligne 14 un total de 9

Pour cette solution, dès le code entré le curseur se repositionnera sur la ligne de la référence si elle existe déjà.

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range

    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
    ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then
        Set plage = Range("A2:A" & Target.Row - 1)
        plage.Select
        Set cherche = plage.Find(Target.Value)
        If Not cherche Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            cherche.Offset(0, 1) = ""
            Application.EnableEvents = True
            cherche.Offset(0, 1).Select
        End If
    End If

End Sub

Merci Steelson

je vais tester mais je pense que ca correspond a mes besoins

Steelson,

je reviens vers toi

j'ai encore une demande

les lignes 2 a 5 ne fonctionnent pas

et pour accélérer l'entrée des valeurs je souhaiterais que quand tu remplis les lignes cela se déplace pour exemple sur la ligne 2 colonne A( donc la ref) on passe colonne B ligne 2 jusque la normal et après quand tu as rempli la valeur en B on passe automatiquement ligne 3 colonne A etc...

encore merci de ton aide

Si tu ne laisses pas de lignes vierges cela fonctionne.

OK pour le renvoi automatique, j'ai ajouté

        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cherche As Range, plage As Range

    If Target.CountLarge > 1 Then Exit Sub
    If Target.Value = "" Then Exit Sub
    If Target.Row = 1 Then Exit Sub

    If Not Intersect(Target, Columns("B")) Is Nothing Then
        Target.Offset(, 5).Value = Target.Offset(, 5).Value + Target.Value
        Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
    ElseIf Not Intersect(Target, Columns("A")) Is Nothing Then
        Set plage = Range("A2:A" & Target.Row - 1)
        plage.Select
        Set cherche = plage.Find(Target.Value)
        If Not cherche Is Nothing Then
            Application.EnableEvents = False
            Application.Undo
            cherche.Offset(0, 1) = ""
            Application.EnableEvents = True
            cherche.Offset(0, 1).Select
        End If
    End If

End Sub
Rechercher des sujets similaires à "addition permanente"