Boucle qui teste une cellule et calcule des moyennes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Babar1986

XLDnaute Nouveau
Bonjour à toutes et à tous,

Je suis désespéré j'ai essayé plein de solutions différentes et je n'y arrive pas. Voila mon problème.
Je fais une macro qui teste si la cellule D9 n'est pas vide.
Si oui, je veux qu'ensuite la macro calcule la moyenne en cellule D11 des cellules D12 à D14.
Puis la moyenne en cellule D15 des cellules D16 à D19
Puis la moyenne en cellule D20 des cellules D21 à D22
Puis la moyenne en cellule D23 des cellules D24 à D25

Puis je teste la cellule E9
Puis la moyenne en E11, E15, E20, E23

ETC

Voila le code que j'ai mis :

Code:
ii = 4
While Cells(9, ii) <> ""
    Cells(11, ii).Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[1]C:R[4]C)"
    Cells(15, ii).Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[1]C:R[5]C)"
    Cells(20, ii).Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[1]C:R[3]C)"
    Cells(23, ii).Select
    ActiveCell.FormulaR1C1 = "=AVERAGE(R[1]C:R[3]C)"
ii = ii + 1

Wend

Au final, le test marche, mais ensuite il me crée des moyennes pour chaque ligne.

Je ne comprend vraiment pas pourquoi.

Si quelqu'un pouvait m'expliquer mon erreur et me donner la réponse.

Merci d'avance !!

Arthur.
 
Re : Boucle qui teste une cellule et calcule des moyennes

Bonjour à tous ,fredl
et si malgrès tout tu as en besoin
Code:
Sub test()
 If Cells(9, 4) <> "" Then
     With Cells(11, 4)
       .FormulaR1C1 = "=AVERAGE(R[1]C:R[4]C)"
       Cells(11, 4) = CDbl(Format(Cells(11, 4), "##,##0.00"))
       .Font.Bold = True
       End With
     With Cells(15, 4)
       .FormulaR1C1 = "=AVERAGE(R[1]C:R[5]C)"
       Cells(15, 4) = CDbl(Format(Cells(15, 4), "##,##0.00"))
       .Font.Bold = True
       End With
     With Cells(20, 4)
       .FormulaR1C1 = "=AVERAGE(R[1]C:R[3]C)"
       Cells(20, 4) = CDbl(Format(Cells(20, 4), "##,##0.00"))
        .Font.Bold = True
      End With
      With Cells(23, 4)
       .FormulaR1C1 = "=AVERAGE(R[1]C:R[3]C)"
       Cells(23, 4) = CDbl(Format(Cells(23, 4), "##,##0.00"))
       .Font.Bold = True
       End With
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
968
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
872
Réponses
22
Affichages
3 K
Retour