Calcul de moyenne (nombres de valeurs variabl
Résolu/Fermé
A voir également:
- Calcul de moyenne (nombres de valeurs variabl
- Calcul moyenne excel - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Formule de calcul excel - Guide
- Logiciel calcul plancher bois gratuit - Télécharger - Architecture & Déco
- Le fichier contient le nombre de voyageurs dans 3 gares. dans la cellule b5, saisissez une formule qui calcule le total et se met à jour si on change une valeur du tableau. quel total obtenez-vous ? quelle formule avez-vous saisie ? ✓ - Forum Excel
5 réponses
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 13:38
26 mai 2011 à 13:38
Bonjour,
si ton tableau est déjà trié comme tu l'as fait :
Sub moyenne()
i=1
a=1
do while cells(i,1) <> ""
valeur = cells(i,1)
compteur = 1
total = cells(i,1)
do while cells(i+1,1) = valeur
total = total + cells(i+1,j)
compteur = compteur +1
i=i+1
loop
cells(a,3) = total/compteur
a=a+1
loop
End Sub
si ton tableau est déjà trié comme tu l'as fait :
Sub moyenne()
i=1
a=1
do while cells(i,1) <> ""
valeur = cells(i,1)
compteur = 1
total = cells(i,1)
do while cells(i+1,1) = valeur
total = total + cells(i+1,j)
compteur = compteur +1
i=i+1
loop
cells(a,3) = total/compteur
a=a+1
loop
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
Modifié par michel_m le 26/05/2011 à 14:19
Modifié par michel_m le 26/05/2011 à 14:19
Bonjour,
Es tu obligé d'utiliser VBA ?
car, sinon, un tableau croisé dynamique résout tranquillement le problème.
pj: un tu exemple fait en 5 minutes
https://www.cjoint.com/?3EAosOeCoTW
Michel
Es tu obligé d'utiliser VBA ?
car, sinon, un tableau croisé dynamique résout tranquillement le problème.
pj: un tu exemple fait en 5 minutes
https://www.cjoint.com/?3EAosOeCoTW
Michel
Re-Bonjour,
Merci pour votre aide Melanie. Valeur et total sont les mêmes d'après vous? J'aurai plutôt mis total = Cells(i,2). Est ce cela ?
Lorsque j'exécute le programme, excel me dit "incompatiblité de type 13", j'ai vu que c'était un problème assez répandu concernant un problème de variable (chaine de caractère à la place de variable ou problème du genre).
Voyez vous dans ce que vous avez écrit quelque chose suscpetible d'être innaproprié ?
Merci
Romain
Merci pour votre aide Melanie. Valeur et total sont les mêmes d'après vous? J'aurai plutôt mis total = Cells(i,2). Est ce cela ?
Lorsque j'exécute le programme, excel me dit "incompatiblité de type 13", j'ai vu que c'était un problème assez répandu concernant un problème de variable (chaine de caractère à la place de variable ou problème du genre).
Voyez vous dans ce que vous avez écrit quelque chose suscpetible d'être innaproprié ?
Merci
Romain
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 14:18
26 mai 2011 à 14:18
Bonjour,
Oui une petite erreur de frappe et tu as raison ;
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
a = a + 1
Loop
End Sub
Oui une petite erreur de frappe et tu as raison ;
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
a = a + 1
Loop
End Sub
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 14:20
26 mai 2011 à 14:20
j'ai fait une autre erreur, celui-ci fonctionne :
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
Loop
End Sub
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
Loop
End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re-Bonjour,
A priori la boucle tourne à l'infini et bloque excel. Y'aurait il une condition à rajouter ?
Merci
A priori la boucle tourne à l'infini et bloque excel. Y'aurait il une condition à rajouter ?
Merci
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
26 mai 2011 à 14:30
26 mai 2011 à 14:30
as tu lu mon message qui te propose une solution toute simple sans VBA ?
Bonjour michel,
Je ne l'ai vu qu'après coup c'est vrai. Les tableau croisé dynamique sont certes plus rapides mais dans mon cas, l'utilisation de vba est plus approprié. Il s'agit de donnée que je souhaiterai classer (calcul de moyenne) puis exporter dans un autre logiciel et ceci pour un grands nombres de fichiers. Une macro pouvant réaliser cette opération pour tout mes fichiers me faciliterait grandement la tâche.
Merci néanmoins pour l'info !
Romain
Je ne l'ai vu qu'après coup c'est vrai. Les tableau croisé dynamique sont certes plus rapides mais dans mon cas, l'utilisation de vba est plus approprié. Il s'agit de donnée que je souhaiterai classer (calcul de moyenne) puis exporter dans un autre logiciel et ceci pour un grands nombres de fichiers. Une macro pouvant réaliser cette opération pour tout mes fichiers me faciliterait grandement la tâche.
Merci néanmoins pour l'info !
Romain
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 14:36
26 mai 2011 à 14:36
as-tu pris le code qui était en commentaire?
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
Loop
End Sub
Sub moyenne()
i = 1
a = 1
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 1)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
Loop
End Sub
Non à ce moemnt là je ne l'avais pas pris. Celui en commentaire me donne un seul résultat tout en haut de la colonne 3. Le chiffre donnée (si je reprends les valeur numériques que j'ai donné en haut de page( est 64. Cela ne semble correpondre à aucune moyenne. Ce qui m'étonne c'est que 3 résultats sont sensé apparaitre et que un seul ne s'affiche.
Romain
Romain
melanie1324
Messages postés
1505
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
154
26 mai 2011 à 14:45
26 mai 2011 à 14:45
Pardonne moi suis en train de faire la sieste :
Sub moyenne()
i = 2
a = 2
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 2)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
a = a + 1
Loop
End Sub
Sub moyenne()
i = 2
a = 2
Do While Cells(i, 1) <> ""
valeur = Cells(i, 1)
compteur = 1
total = Cells(i, 2)
Do While Cells(i + 1, 1) = valeur
total = total + Cells(i + 1, 2)
compteur = compteur + 1
i = i + 1
Loop
Cells(a, 3) = total / compteur
Cells(a, 3).Select
i = i + 1
a = a + 1
Loop
End Sub