VBA : Moyenne d'une partie de ligne
Résolu/Fermé
A voir également:
- Vba moyenne
- Calculer une moyenne sur excel - Guide
- Moyenne de pourcentage excel ✓ - Forum Excel
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
5 réponses
Utilisateur anonyme
18 mai 2010 à 10:27
18 mai 2010 à 10:27
Bonjour à tous,
Je me permets de réitérer ma demande.
Je suis un peu bloqué sans cela à vrai dire.
Merci beaucoup aux aideurs
Je me permets de réitérer ma demande.
Je suis un peu bloqué sans cela à vrai dire.
Merci beaucoup aux aideurs
Utilisateur anonyme
18 mai 2010 à 11:39
18 mai 2010 à 11:39
Bon ben j'ai opté pour la bonne vieille solution de la somme puis de la division.
ça fonctionne, mais quand même, si certains peuvent me donner la syntaxe à utiliser pour faire directement la moyenne, pour ma culture...merci
Dim dercol5 As Byte Dim derline5 As Byte dercol5 = Range("B4").End(xlToRight).Column derline5 = Range("B4").End(xlDown).Row Dim somme As Integer Dim moyenne As Integer somme = 0 Dim b As Byte For b = 6 To dercol5 - 1 somme = somme + Cells(4, b).Value Next moyenne = somme / (dercol5 - 1 - 5) Cells(4, dercol5).Value = moyenne
ça fonctionne, mais quand même, si certains peuvent me donner la syntaxe à utiliser pour faire directement la moyenne, pour ma culture...merci
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 18/05/2010 à 11:43
Modifié par pijaku le 18/05/2010 à 11:43
Salut,
Je ne connait pas la fonction :
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Je ne connait pas la fonction :
Application.Averagemais perso, pour une moyenne je ferais comme ceci : !!! Il se peux que je n'ai rien compris à ton souhait. Pense donc à tester cette macro sur une copie de ton fichier...
Sub Bouton18_QuandClic() Dim dercol5, derline5, i, j ,nbre As Integer Dim moyenne As Double dercol5 = Range("B4").End(xlToRight).Column derline5 = Range("B4").End(xlDown).Row For i = 5 To derline5 'boucle sur toutes les lignes à partir de 5 If dercol5 - 1 < 2 then Exit Sub nbre = dercol5 - 3 For j = 2 To dercol5 - 1 'boucle des colonnes B à dercol5 - 1 moyenne = moyenne + Cells(i, j).Value Next j Cells(i, dercol5).Value = CDbl(moyenne / nbre) Next i End Sub
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
Utilisateur anonyme
18 mai 2010 à 11:56
18 mai 2010 à 11:56
Merci pour ta réponse Pijaku,
Mais le bout de code que j'ai proposé au dessus règle déjà mon problème.
Je me demandais juste s'il existait une fonction permettant de faire directement une moyenne sur un morceau de ligne, et je m'explique car effectivement je ne suis pas forcément très clair.
En gros faire la moyenne de F4 à F(dercol5-1).
Je ne peux pas écrire average(F4 : F#) puisque dercol5-1 est variable et c'était mon soucis.
Mais j'ai ce que j'ai besoin maintenant merci quand même !
Petite question subsidiaire quand même si tu me le permets.
Comment fait-on pour définir une variable en fonction d'une autre ?
Je veux que pour t allant de 4 à derline5, j'obtienne la moyenne dans la dernière case.
J'ai maintenant ma moyenne (code précédent), est ce possible d'écrire quelquechose comme somme(t) = blablabla ?
Désolé, je suis encore débutant sous vba et merci pour ton aide.
Mais le bout de code que j'ai proposé au dessus règle déjà mon problème.
Je me demandais juste s'il existait une fonction permettant de faire directement une moyenne sur un morceau de ligne, et je m'explique car effectivement je ne suis pas forcément très clair.
En gros faire la moyenne de F4 à F(dercol5-1).
Je ne peux pas écrire average(F4 : F#) puisque dercol5-1 est variable et c'était mon soucis.
Mais j'ai ce que j'ai besoin maintenant merci quand même !
Petite question subsidiaire quand même si tu me le permets.
Comment fait-on pour définir une variable en fonction d'une autre ?
Je veux que pour t allant de 4 à derline5, j'obtienne la moyenne dans la dernière case.
J'ai maintenant ma moyenne (code précédent), est ce possible d'écrire quelquechose comme somme(t) = blablabla ?
Désolé, je suis encore débutant sous vba et merci pour ton aide.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
18 mai 2010 à 14:04
18 mai 2010 à 14:04
Pour la moyenne essaye ceci :
A toi de définir au préalable dercol5
Cells(4, dercol5).Value = Application.Average(Range("F4:F" & dercol5-1))
A toi de définir au préalable dercol5
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
18 mai 2010 à 16:13
18 mai 2010 à 16:13
quel c** je fais...
Ben oui on calcule la moyenne entre F4 et F... Donc c'est po ça... Essaye :
Excuse moi encore, par moment ça crève l'écran et on ne voit rien...
Ben oui on calcule la moyenne entre F4 et F... Donc c'est po ça... Essaye :
Cells(4, dercol5).Value = Application.Average(Range(Cells(4, 6), Cells(4, dercol5 - 1)))
Excuse moi encore, par moment ça crève l'écran et on ne voit rien...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question