VBA : Moyenne d'une partie de ligne
Résolu/Fermé
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
-
17 mai 2010 à 15:55
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 - 19 mai 2010 à 11:38
jahawai Messages postés 223 Date d'inscription dimanche 23 décembre 2007 Statut Membre Dernière intervention 12 mai 2020 - 19 mai 2010 à 11:38
5 réponses
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
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
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
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
15 mars 2023
2 715
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? --
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
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
15 mars 2023
2 715
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
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
18 mai 2010 à 14:07
18 mai 2010 à 14:07
Je vais tester ça merci !
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
18 mai 2010 à 14:17
18 mai 2010 à 14:17
apparemment ça ne fonctionne pas...
C'est bizarre, j'obtiens une valeur assez incompréhensible.
C'est bizarre, j'obtiens une valeur assez incompréhensible.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 mars 2023
2 715
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...
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
18 mai 2010 à 16:28
18 mai 2010 à 16:28
héhé, pas de soucis ;-)
Comme je le disais j'ai opté pour la solution "longue" de calcul de somme puis la diviser.
Mais c'est très bien comme ça.
Je vais quand même essayer ta solution pour la "culture" et juste pour dire aux autres si ça fonctionne.
Merci en tous cas
Comme je le disais j'ai opté pour la solution "longue" de calcul de somme puis la diviser.
Mais c'est très bien comme ça.
Je vais quand même essayer ta solution pour la "culture" et juste pour dire aux autres si ça fonctionne.
Merci en tous cas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jahawai
Messages postés
223
Date d'inscription
dimanche 23 décembre 2007
Statut
Membre
Dernière intervention
12 mai 2020
10
19 mai 2010 à 11:38
19 mai 2010 à 11:38
Et bien pour info, ça fonctionne.
Merci Pikaju
Au plaisir
Merci Pikaju
Au plaisir