VBA somme

Résolu/Fermé
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 - 24 déc. 2011 à 16:55
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 25 déc. 2011 à 19:36
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

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 24/12/2011 à 17:27
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
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 24/12/2011 à 18:35
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
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié par ccm81 le 24/12/2011 à 18:52
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 déc. 2011 à 12:42
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
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
25 déc. 2011 à 13:39
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 déc. 2011 à 14:04
Où tu a vu un G ? dans mon exemple c'est un B
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
25 déc. 2011 à 14:12
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
25 déc. 2011 à 14:54
Oui, je n'avais pas tester la formule mais maintenant ça fonctionne...
Cells(17, B).Formula = "=SUM(" & A & ")-" & Cells(8, B).Address & " * 2"
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
25 déc. 2011 à 15:07
Nickel =)

Merci encore Lermite =)

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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 18:15
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
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 18:34
Super je test ca
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
Modifié par gregg1712 le 24/12/2011 à 18:45
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
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 18:54
dac merci bcp pour tes conseil et ton aide :)
0
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 19:03
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
gregg1712 Messages postés 45 Date d'inscription dimanche 20 décembre 2009 Statut Membre Dernière intervention 7 juillet 2022 2
24 déc. 2011 à 19:41
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
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
25 déc. 2011 à 19:36
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