VBA somme

Résolu
Bonjour,

J'ai un problème pour faire une somme:

_______________________

Dim Depense As Integer

Depense = ActiveCell.FormulaR1C1 = "=SUM(R[-13]C:R[-2]C)"
ActiveCell.Offset(15, 0).Value = Depense

_______________________

Je voudrais que ca sélectione les cases -2 (de cette colonne) jusque -13 (de cette colonne)
Et ca fait la somme et ca l'inscrit dans la bonne case (15,0)

Ca me renvois toujours 0 ...
Vous avez une idée ?

9 réponses

  1. Contributeur
    Re,
    Pourquoi avoir supprimer ta question dans ton poste précédant ?
    Enfin,...
    Tu met..
    Dim C As Integer, A As String  
        C = ActiveCell.Column  
        A = Range(Cells(1, C), Cells(14, C)).Address  
        Cells(15, C).Formula = "=SUM(" & A & ")"

    Ca répond à la question que tu avais posé : avec sélection de la colonne
    Et rien d'autre, c'est la formule que tu insère dans la feuille.
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    1. Je pensais avoir la solution, mais ca ne marchait, j'ai recrée un post... c'est vrais j'aurais du rester sur le même sujet, j'en suis navré :s

      Ca marche tres bien, mais si je veux juste sélectionner 2 donné de la colonne et les soustraire et divisé par 12 ? :)

      genre (a-b)/12

      a= une donné de la colonne et b= une autre donné
      1. bonsoir

        Q1. ce n'est certainement pas la meilleure façon de faire mais si tu tiens à mettre la formule dans la cellule active, une autre solution

        ActiveCell.FormulaR1C1 = "=SUM(R[-13]C:R[-2]C)"
        ActiveCell.Offset(15, 0).Value = ActiveCell.Value

        Q2.
        a = cells(li1,co).Value
        b = cells(li2,co).Value
        c = (a-b)/12
        cells(li3,co).value = c

        où li1, li2, li3 sont des n° de ligne et co un n° de colonne

        bonne suite
        1. Nickel comme la colonne change, j'ai fait

          ________

          Dim F As Integer, C As Integer, D As Integer, E As Integer
          F = ActiveCell.Column
          C = Cells(3, F).Value
          D = Cells(17, F).Value
          E = (C - D) /12
          Cells(18, F).Value = E

          ________

          Merci :)

          Il y a plus qu'un dernier truc et mon programme sera fini et parfait : Il y a une fonction qui colore les case ou il y à un chiffre négatif ? :)
          1. re

            un conseil, tes noms de variables ne parlent pas beaucoup, évites les A, B, etc au profit de col, lig, feuille, etc ... tu y verras plus clair quand tu reliras quelques jours après

            pour ta question

            if cells(li,co).value < 0 then  
              cells(li,co).interior.colorindex = 3   
            else  
              cells(li,co).interior.colorindex = 0  
            end if 

            RQ. si la couleur 3 ne te convient pas ....

            bonne suite
            1. dac merci bcp pour tes conseil et ton aide :)
              1. Tiens juste un autre et dernier petit problème

                ___________________

                Dim B As Integer, A As String
                B = ActiveCell.Column
                A = Range(Cells(4, B), Cells(15, B)).Address
                Cells(17, B).Formula = "=SUM(" & A & ")"
                ____________________

                Si je veux additionner tout les élément de la colonne sauf 1 élément que je veux le soustraire :

                Exemple additionner de 4 jusqu'à 15, mais soustraire juste la valeur de la case 8
              2. DONC:
                Si je veux additionner tout les élément de la colonne sauf 1 élément que je veux le soustraire :

                Exemple additionner de la ligne 4 à la ligne15, mais soustraire juste la valeur de la ligne 8 (chaque fois de la même colonne)

                a+b+c -D +e+f+g+h+i+j+k
            2. Contributeur
              Re,
              Si tu veux juste ne pas la totaliser..
                  Cells(17, B).Formula = "=SUM(" & A & ")-Cells(8," & B & ")"

              Si tu veux la soustraire..
                  Cells(17, B).Formula = "=SUM(" & A & ")-Cells(8," & B & ") * 2"
              1. bonjour,
                ca donne :
                ____________________________________________
                Dim A As String
                Dim B As Integer

                B = ActiveCell.Column
                A = Range(Cells(4, B), Cells(15, B)).Address
                Cells(17, B).Formula = "=SUM(" & A & ")-Cells(8," & G & ") * 2"
                _____________________________________________

                Je vois pas ce que représente le G plz :)
              2. Contributeur
                Où tu a vu un G ? dans mon exemple c'est un B
              3. Dim A As String
                Dim B As Integer

                B = ActiveCell.Column
                A = Range(Cells(4, B), Cells(15, B)).Address
                Cells(17, B).Formula = "=SUM(" & A & ")-Cells(8," & B & ") * 2"

                Miss oui le B, car le prog bug a ce nieavu
              4. Contributeur
                Oui, je n'avais pas tester la formule mais maintenant ça fonctionne...
                Cells(17, B).Formula = "=SUM(" & A & ")-" & Cells(8, B).Address & " * 2"
              5. Nickel =)

                Merci encore Lermite =)

                Mon prog est fini je vous embêterais plus, bonne fête à vous !
            3. bonjour

              juste en fin de digestion ...

              Dim plage As String, cellule As String
              Dim co As Long
                co = ActiveCell.Column
                plage = "R4C" & co & ":R7C" & co & ",R9C" & co & ":" & "R15C" & co
                cellule = "R8C" & co
                ActiveCell.FormulaR1C1 = "=SUM(" & plage & ")-" & cellule

              sinon tu as aussi plus simple

                plage = "R4C" & co & ":R15C" & co
                ActiveCell.FormulaR1C1 = "=SUM(" & plage & ")-2*" & cellule

              bonne suite