VBA somme

Résolu
gregg1712 Messages postés 59 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    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. gregg1712 Messages postés 59 Statut Membre 2
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Où tu a vu un G ? dans mon exemple c'est un B
      0
    3. gregg1712 Messages postés 59 Statut Membre 2
       
      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. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      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. gregg1712 Messages postés 59 Statut Membre 2
       
      Nickel =)

      Merci encore Lermite =)

      Mon prog est fini je vous embêterais plus, bonne fête à vous !
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gregg1712 Messages postés 59 Statut Membre 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
  7. gregg1712 Messages postés 59 Statut Membre 2
     
    Super je test ca
    0
  8. gregg1712 Messages postés 59 Statut Membre 2
     
    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
  9. gregg1712 Messages postés 59 Statut Membre 2
     
    dac merci bcp pour tes conseil et ton aide :)
    0
    1. gregg1712 Messages postés 59 Statut Membre 2
       
      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. gregg1712 Messages postés 59 Statut Membre 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
  10. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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