VBA excel +moyenne

flyersgoaler Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
wilfried_42 Messages postés 907 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   245
 
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   Statut Membre Dernière intervention  
 
Un GROS merci Wilfred, le code marche à merveille!
0
flyersgoaler Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Contributeur Dernière intervention   245
 
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