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
    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
      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
        1. 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
          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 :)
            0
          2. Contributeur
            Où tu a vu un G ? dans mon exemple c'est un B
            0
          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
            0
          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"
            0
          5. Nickel =)

            Merci encore Lermite =)

            Mon prog est fini je vous embêterais plus, bonne fête à vous !
            0
        2. 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é
          0
          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 ? :)
            0
            1. dac merci bcp pour tes conseil et ton aide :)
              0
              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
                0
              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
                0
            2. 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
              0