Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA : calcul de moyenne

  • Initiateur de la discussion Initiateur de la discussion actaris51
  • Date de début Date de début

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 !

actaris51

XLDnaute Occasionnel
Bonjour,
Je possède un fichier de ce type :
Cijoint.fr - Service gratuit de dépôt de fichiers
Dans ma feuille "données", je possède des indicateurs, mis à jours tous les mois.
Par exemple, ici j'ai mis des données pour la week 36, mais un mois plus tard, pour la week 40 il y aura de nouvelles données.
Je voudrais, dans ma feuilles "KPIs" calculer la moyenne des dernieres valeurs par indicateurs (par exemple ici, cela correspond à la moyenne de N3 à N11 pour le 1er indicateur et N12 à N20 pour le second.
Seulement je n'arrive pas à écrire une macro qui va chercher les dernieres valeurs remplies afin de pouvoir calculer la moyenne.
Pouvez vous m'aider ??
Merci
 
Re : VBA : calcul de moyenne

Bonjour Actaris51,

Juste une précision : Par "dernieres valeurs remplies", est-ce la dernière colonne remplie ? (Dans votre exemple, colonne R ?)

a+
Matt
 
Re : VBA : calcul de moyenne

Bonjour Matt
NOn en fait il s'agit de la derniere colonne remplie avec des valeurs numériques.
Donc dans mon exemple la colonne N
J'ai mit des "X" dans la colonne R et les autres colonnes blanches pour indiquer que c'est là que seront entrées les nouvelles données lorsque l'on sera a la semaine 40, 44...
Si il le faut, je peut enlever ces "X" si cela peut simplifier le code.
Merci
 
Re : VBA : calcul de moyenne

Bonjour a tous,

Essayes ce code et tiens nous au courant si on va dans le bon sens

Sub MoyenneDernierMois()
Dim PremCol As Byte 'Première colonne du tableau
Dim DerCol As Byte 'Dernière colonne du tableau
Dim LaCol As Byte 'Colonne pour la moyenne
Dim LigRef As Byte '1ere ligne utilisée
Dim i As Integer 'Indice de boucle

PremCol = 5
DerCol = 31
LigRef = 3

'Recherche de la colonne moyenne
For i = DerCol To PremCol Step -1
If Not IsEmpty(Cells(LigRef, i)) And IsNumeric(Cells(LigRef, i)) Then
LaCol = i
Exit For
End If
Next

With Sheets("KPIs")
.Range("E2").FormulaR1C1 = "=AVERAGE(Données!R3C" & LaCol & ":R11C" & LaCol & ")"
.Range("E3").FormulaR1C1 = "=AVERAGE(Données!R11C" & LaCol & ":R20C" & LaCol & ")"
End With

End Sub


Caillou
 
Re : VBA : calcul de moyenne

J'arrive un peu tard !🙂

Sub test()

Application.ReferenceStyle = xlR1C1

'on sélectionne la feuille sur laquelle on veut calculer une moyenne
Sheets("Données").Select
Col = Val(InputBox("Dernière colonne renseignée"))
MoyenneBlocking = Round(WorksheetFunction.Average(Range(Cells(3, Col), Cells(11, Col))), 2)
MoyenneNonBlocking = Round(WorksheetFunction.Average(Range(Cells(12, Col), Cells(20, Col))), 2)

'on affiche le résultat
Sheets("KPIs").Activate
Cells(2, 5).Value = MoyenneBlocking
Cells(3, 5).Value = MoyenneNonBlocking

Application.ReferenceStyle = xlA1


End Sub

tant pis je la mets quand même
a+
Matt
 
- 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
10
Affichages
734
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…