VBA excel +moyenne

Fermé
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016 - 19 nov. 2008 à 04:58
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 - 19 nov. 2008 à 06:37
Bonjour,
J'ai programmé un code dans lequel j'obtiens la moyenne d'une colonne X. Je voudrais savoir comment faire d'automatiser pour que j'obtienne la colonne Y. Voici mon code:

For w = 0 To 3

If numberOfDays = 31 Then
Cells(35, w + 2) = "=Average(B4:B34)"
End if
Je voudrais donc, lorsque w va être égal à 1, que mon Average soit de C4:C34, et lorsque w=2, average sera de D4:D34 et ainsi de suite.

Merci beaucoup
A voir également:

4 réponses

wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
19 nov. 2008 à 05:43
bonjour

essaye ca, pas testé

For w = 0 To 3 
     If numberOfDays = 31 Then
         lettre = mid("BCDE",w+1,1)  
         Cells(35, w + 2).formula = "=Average(" & lettre & "4:" & lettre & "34)" 
     End if 
next w
0
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016
19 nov. 2008 à 05:49
Un GROS merci Wilfred, le code marche à merveille!
0
flyersgoaler Messages postés 29 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 4 octobre 2016
19 nov. 2008 à 06:30
Rebonjour,

Désolé mon ignorance, mais je tente depuis tantôt de modifier le code que tu m'as donné pour que la moyenne s'affiche sur les lignes maintenant, mais je ne suis toujours pas capable d'y parvenir. Voici mon code, le but étant encore une fois de faire la moyenne sur une ligne. Donc lorsque q=1, Average(B4:E4) et lorsque q=2, Average(B5:E5) et ainsi de suite. Merci encore a l'avance

For q = 1 To numberOfDays
Cells(3 + q, 6).Formula = "=Average(" & B & "q+3:" & E & "q+3)"

Next q
0
wilfried_42 Messages postés 907 Date d'inscription mardi 19 août 2008 Statut Contributeur Dernière intervention 8 décembre 2009 244
19 nov. 2008 à 06:37
re:

le & est un operateur de concatenation, il ne doit pas se trouver à l'interieur des guillemets

"=average(B" & q+3 & ":E" & q+3 & ")"

maintenant une autre methode plus rapide(sans boucle)
Range("F4").Formula = "=Average(B4:E4)"
range("F4:F" & 3 + numberOfDays).filldown ' simule une selection de la plage avec une Ctrl+B (Copie de la formule vers le bas)
0