IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Cumul d'une valeur


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Septembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut Cumul d'une valeur
    Bonjour, j'ai la valeur 5 dans une cellule, je veux quelle passe à 5+2=7 dans la meme cellule lorsque j'entre 2 dans une autre cellule. Merci

  2. #2
    Membre expert Avatar de QuestVba
    Homme Profil pro
    Enseignant
    Inscrit en
    Juillet 2012
    Messages
    2 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2 477
    Points : 3 864
    Points
    3 864
    Par défaut
    Bonjour,

    Dans ta cellule A1
    Mais à mon avis, tu vas revenir en disant que tu as d'autres conditions.

  3. #3
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Salut.

    Pour généraliser la réponse de QuestVBA, car je suppose que tu vas vouloir ajouter la valeur de la cellule à 5, et pas uniquement 2.... En supposant que la cellule dans laquelle tu mets la valeur à ajouter soit B1, tu pourrais avoir quelque chose du genre comme formule
    =5+b1
    Cela dit, en procédant ainsi, tu mets une constante dans ta formule. Je soupçonne un défaut de conception. Tu aurais selon moi intérêt à mettre 5 dans une cellule (A1 par exemple), 2 dans une autre (B1 par exemple) et à additionner dans une troisième (C1 par exemple) avec une simple formule du style =a1+b1
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre éprouvé Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Points : 1 250
    Points
    1 250
    Par défaut
    Bonsoir le forum,

    Proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Not Intersect(Target, Range("B3:B10")) 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
    Images attachées Images attachées  
    Si cette proposition vous convient, merci de cliquer sur :

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Septembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Merci à tous,
    je pense que je me suis mal exprimé:
    Voici mon problème: j'ai une valeur X dans la cellule A2, je dois entrer la valeur Y dans la cellule A1, je veux que la valeur de A2 passe à X+Y. C'est que je travaille sur un projet ou je dois cumuler les résultats.
    MERCI

  6. #6
    Membre éprouvé Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Points : 1 250
    Points
    1 250
    Par défaut
    Cela correspond bien à ma proposition.

    Il suffit d'adapter le code aux cellules indiquées.
    Images attachées Images attachées  
    Si cette proposition vous convient, merci de cliquer sur :

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Utiliser une macro pour ça, c'est un peu comme utiliser un char d'asseau pour écraser une mouche.
    En plus, avec une macro, chaque fois que A1 va changer, elle se rajoutera au résultat précédent, ce qui fera un cumul.

    Soit tu mets en A2 :
    Soit tu mets dans une autre cellule :
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Il faudrait mieux expliquer ce que tu veux.

    Veux-tu cumuler à chaque saisie? Remplacer la valeur précédente par la nouvelle?

    Quoi qu'il en soit:
    Je n'aime pas la solution de Menhir (que je salue au passage ) car elle te contraint à mettre une constante dans une formule, ce qui n'est jamais l'idéal.
    On peut s'orienter vers du VBA, mais je persiste en disant qu'il y a un problème de conception et d'organisation du classeur.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Septembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    OK, je résume ce que je veux:
    j'ai deux cellules A1 et A2;
    chaque jour, je dois entrer une valeur X dans A1, cette valeur X doit se cumuler dans la valeur Y contenue dans A2 pour former X+Y dans A2.
    par exemple, j'ai 8 dans A2, si j'entre 10 dans A1, j'obtiens 18 dans A2.

  10. #10
    Membre éprouvé Avatar de excfl
    Profil pro
    Inscrit en
    Octobre 2012
    Messages
    690
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2012
    Messages : 690
    Points : 1 250
    Points
    1 250
    Par défaut
    Citation Envoyé par clobern Voir le message
    chaque jour, je dois entrer une valeur X dans A1, cette valeur X doit se cumuler dans la valeur Y contenue dans A2 pour former X+Y dans A2.
    Suite de ma dernière image jointe :
    Images attachées Images attachées  
    Si cette proposition vous convient, merci de cliquer sur :

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Ok, c'est plus clair.
    Donc Pierre avait raison : oublie ma solution, il faut passer par une macro.
    Quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Worksheet_Change(ByVal Target as Range)
        If Target.Address <> "$A$1" Then Exit Sub
        Range("A2").Value = Range("A2").Value + Target.Value
    End Sub
    A placer dans l'espace de ta feuille de calcul de VBA.

    Mais je pense que c'est dangereux car si tu valides plusieurs fois la cellule, celle-ci sera à chaque fois incrémentée.
    Il faudrait mettre une protection. Par exemple, si tu ne fais cette saisie une fois pas jour, mettre dans une cellule voisine la date de la dernière incrémentation et vérifier dans la macro que cette date est différente de la date du jour avant de la déclencher.

    En supposant que tu mets cette date en A3, ça donnerait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target as Range)
        If Target.Address <> "$A$1" Then Exit Sub
        If Day(Range("A3").Value) = Day(Now) Then Exit Sub
        Range("A2").Value = Range("A2").Value + Target.Value
        Range("A3").Value = Now
    End Sub
    Une autre solution consisterait à mettre une valeur en A1 et ne réactualiser A2 qu'une fois par jour (à minuit par exemple) avec une instruction OnTime.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Septembre 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2011
    Messages : 24
    Points : 16
    Points
    16
    Par défaut
    Merci pour vos contributions,
    Ca marche, à plus
    Merci une fois de plus...

  13. #13
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Il faut toujours éviter les Exit Sub... Règle de base: une seule sortie de procédure ou de fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Worksheet_Change(ByVal Target as Range)
        If Target.Address = "$A$1" Then
          Range("A2").Value = Range("A2").Value + Target.Value
        End If
    End Sub
    C'est une bonne habitude à prendre car dans le cas d'un code comme celui qui suit, ça pose problème, les sorties multiples
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub MySub()
      Application.DisplayAlerts = False
      ...
      ...
      If ...then Exit Sub
      ...
      Application.DisplayAlerts = True ' <=== On n'est pas certain de passer par cette ligne!!
    End Sub
    P.S.: Ne pas oublier si c'est ok.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  14. #14
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    En début de code, ce cas ne risque pas d'arriver.

    Perso, j'ai plutôt pour règle de limiter au maximum les instructions comme DisplayAlerts, ScreenUpdating et autres On Error.
    Quand je les utilise, c'est vraiment pour une zone très limitée du code (idéalement en encadrement d'une seule ligne).

    Le codage, c'est comme la peinture : chacun son style.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  15. #15
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 927
    Points
    55 927
    Billets dans le blog
    131
    Par défaut
    Mwouais, question de style, on va dire cela comme cela. Cela dit, pour moi, un code sale, c'est d'abord un code sale avant d'être un style de code

    Il faudrait, au moins, tester que la valeur à ajouter est numérique, sinon l'utilisateur va se prendre soit une erreur non gérée soit une belle ligne jaune dans le VBE, selon les options de gestion d'erreur
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Valeurs cumulée dans une colonne
    Par ronio dans le forum Power BI
    Réponses: 2
    Dernier message: 20/02/2014, 12h39
  2. Cacul d'une valeur cumulée
    Par iReporter dans le forum iReport
    Réponses: 1
    Dernier message: 27/12/2012, 13h20
  3. [AC-2003] Cumul décroissant de valeurs dans une requête
    Par Piccou dans le forum VBA Access
    Réponses: 4
    Dernier message: 22/08/2009, 21h29
  4. Calcul d'une valeur cumulée
    Par poiuyt256 dans le forum VBA Access
    Réponses: 1
    Dernier message: 28/01/2009, 22h08
  5. Afficher une valeur du context
    Par [DreaMs] dans le forum XMLRAD
    Réponses: 13
    Dernier message: 28/04/2003, 13h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo