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. 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
    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. 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 !
    2. 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
    3. 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. 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. 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. 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. 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.