[VBA] Somme à taille variable

Moulinois

XLDnaute Occasionnel
RESOLU


Bonjour,

Dans mon code, je dois avoir Range("J13").Formula = "=C5+C16+C27+C38+C49+C60+C71", le nombre d'éléments de la somme variant (mais suit une suite arithmétique de raison 11).

Connaissant le nombre d'éléments, comment faire pour que VBA me sorte une formule sur mesure en J13 ?


Merci :)
 
Dernière édition:

suistrop

XLDnaute Impliqué
Re : [VBA] Somme à taille variable

Hello,


par exemple :

soit x le nombre d élément que tu va récupérer je ne sais ou,ici dans la cellule A2 :
ou tu peux aussi mettre x=10
Code:
x=cells(2,1) 'x=10 enfin ce que tu veux...
for i = 0 to x-1
[COLOR=Green]'ici on commence a la ligne 5 donc 5+11*i si tu commence a la ligne 7 : 7+11*i[/COLOR]
    cells(13,10)=cells(5+11*i,3)

next i
a tester dit moi si ca marche et si ca marche pas donne moi ton fichier que je puisse faire des test !
 

Moulinois

XLDnaute Occasionnel
Re : [VBA] Somme à taille variable

Salut,

Si j'ai compris ton code, ça ne marchera pas :D
Premièrement parce qu'il ne fait pas de somme ;) (Il faudrait Cells(13, 10) = Cells(13, 10) + Cells(5 + 11 * i, 4))
Deuxièmement car je veux en J13 la formule me permettant de calculer la somme et non la somme directement (ses éléments sont amenés à changer après que la macro ait été lancée).

@+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : [VBA] Somme à taille variable

Bonjour,

N étant le nombre d'éléments dans la formule, entrez le code (non testé) :

texte = "=C5"
For i = 1 To N - 1
texte = texte & "+C" & 5 + i * 11
Next
Range("J13").Formula = texte

A+
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : [VBA] Somme à taille variable

Bonjour,

J2 contient le nb d'items:

=SOMMEPROD(DECALER($C$5;;;J2*11)*(MOD(LIGNE(DECALER($C$5;;;J2*11))+11-LIGNE(C5);11)=0))

JB
 

Pièces jointes

  • Classeur1.xls
    17.5 KB · Affichages: 69
  • Classeur1.xls
    17.5 KB · Affichages: 63
  • Classeur1.xls
    17.5 KB · Affichages: 71

Statistiques des forums

Discussions
312 211
Messages
2 086 292
Membres
103 171
dernier inscrit
clemm