VBA excel +moyenne

flyersgoaler Messages postés 35 Statut Membre -  
wilfried_42 Messages postés 912 Statut Contributeur -
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
Configuration: Windows Vista
Internet Explorer 7.0

4 réponses

  1. wilfried_42 Messages postés 912 Statut Contributeur 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
  2. flyersgoaler Messages postés 35 Statut Membre
     
    Un GROS merci Wilfred, le code marche à merveille!
    0
  3. flyersgoaler Messages postés 35 Statut Membre
     
    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
  4. wilfried_42 Messages postés 912 Statut Contributeur 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