programme VBA pour calculer une moyenne

alex751

XLDnaute Nouveau
Bjr, je suis un débutant en VBA.

j'ai un classeur Excel avec 15 feuilles : (Feuil1, Feuil2,..., Feuil15)

sur chaque feuille il y a une colonne avec 20 valeurs (de B2 à B22).
Je dois calculer la moyenne de ces valeurs dans la case B23 pour chaque feuille.

J'aimerais donc créer un programme VBA permettant de faire ça.
(mon soucis c'est la boucle pour réaliser le calcul sur les 15 feuilles)


merci de votre aide,
 

porcinet82

XLDnaute Barbatruc
Re : programme VBA pour calculer une moyenne

Salut,

Voici un exemple de ce qu'il est possible e faire :
Code:
Sub test()
Dim k%, i%, nbcelnonvide%, somme%
For k = 1 To 15
    With Sheets(k)
        For i = 2 To 22
            somme = somme + .Cells(i, 2).Value
            If IsEmpty(.Cells(i, 2).Value) = False Then nbcelnonvide = nbcelnonvide + 1
        Next i
        If somme <> 0 And nbcelnonvide <> 0 Then .Cells(23, 2).Value = somme / nbcelnonvide
        somme = 0
        nbcelnonvide = 0
    End With
Next k
End Sub

@+
 

Caillou

XLDnaute Impliqué
Re : programme VBA pour calculer une moyenne

Bonjour,

Sinon, tu peux aussi sélectionner les 15 feuilles et en B23 taper la formule
=MOYENNE(B1:B22)
la formule sera saisie sur chaque feuille!
N'oublie pas de 'déselectionner' les feuilles ensuite...

Caillou
 

Pierrot93

XLDnaute Barbatruc
Re : programme VBA pour calculer une moyenne

Bonjour Alex, Kjin, Romain

c'est fait, je donne quand même cela fera une autre solution...

Code:
Sub test()
Dim ws As Worksheet
For Each ws In Worksheets
    ws.Range("B23").Value = WorksheetFunction.Average(ws.Range("B2:B22"))
Next ws
End Sub

bon après midi
@+

Edition : bonjour également à Caillou...
 

Risleure

XLDnaute Occasionnel
Re : programme VBA pour calculer une moyenne

Bonjour kjin, le Forum

Une solution sans VBA

Si tu sélectionnes tes 15 feuilles avec CTRL et si tu écris en B23 = Moyenne(B1:B22) tu auras la moyenne qui apparaitra en B23 sur chacune des feuilles.


A+
 
Dernière édition:

alex751

XLDnaute Nouveau
Re : programme VBA pour calculer une moyenne

j'ai un autre petit problème.

cette fois je dois compter le nombre de case avec des valeurs à l'intérieur.

J'ai tapé ce code mais ça ne marche pas. Il ne me donne pas les bonnes valeurs.

Sub decompte()
For i = 1 To 15
With Sheets("Feuil" & i)
.Range("B24") = Application.WorksheetFunction.CountA(Range("B2:B22"))
End With
Next
End Sub



Il me donne des valeurs identiques sur chaque feuille. Pourquoi?

merci
 

Cousinhub

XLDnaute Barbatruc
Re : programme VBA pour calculer une moyenne

Bonsoir,

comme tu fais référence à la feuille "i", n'oublie pas le point, devant les cellules....

Code:
Sub decompte()
For i = 1 To 15
With Sheets("Feuil" & i)
.Range("B24") = Application.WorksheetFunction.CountA([COLOR="Red"][SIZE="7"].[/SIZE][/COLOR]Range("B2:B22 "))
End With
Next
End Sub
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Programme VBA
Réponses
3
Affichages
434
Réponses
16
Affichages
616

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 389
Messages
2 087 933
Membres
103 678
dernier inscrit
bibitm