![]() |
|
Forum
|
|
|
#1 (permalink) |
|
XLDnaute Nouveau
Date d'inscription: juin 2007
Messages: 23
|
Bonsoir à tous.
Ma question ce soir est la suivante. J'ai un tableau, dont la première me sert à calculer les moyennes des dix autres colonnes pour chaque ligne. Comme tous les jours j'ajoute des valeurs dans les colonnes suivantes, je dois à chaque fois changer la formule =moyenne(A2:G2) en par exemple =moyenne(A2:h2). J'aurais donc voulu grâce à une macro via un bouton automatiser tout ça en prenant en compte la dernière colonne que je viens de saisir pour calculer ma moyenne. J'ai vu dans les posts précédents la formule suivante Application.worksheetsFunction.average=.... mais j'avoue ne pas très bien comprendre son utilisation. Merci d'avance pour votre aide. |
|
|
|
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
XLDnaute Occasionel
Date d'inscription: juillet 2005
Messages: 218
|
Bonsoir Pierrot et le Forum
Tu peux ecrire la fonction suivante et tu n'as plus à toucher à ta fonction. =MOYENNE(B4:IV4) Bonsoir Didier
__________________
A+ Marc Mes Blogs http://sculptures-sable.skyblog.com/ http://couche--de--soleil.skyblog.com/ Dernière modification par Marc77 ; 26/06/2007 à 23h19. |
|
|
|
|
|
#3 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: février 2005
Messages: 2 378
|
Bonsoir pierrot132,
Plutot que d'imaginer une usine VBA qui ne fera qu'alourdir ton classeur, pourquoi ne pas mettre tout simplement en A4 : =MOYENNE(B4:IV4) et tirer cette formule vers le bas ? Sauf erreur, la fonction MOYENNE() sait très bien gérer les cellules vides et donc n'en tient pas compte... Cordialement, EDITION : Arf, bonsoir Marc77, on a frôlé l'embouteillage... |
|
|
|
|
|
#4 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: juin 2005
Localisation: RENNES
Version Excel : Excel 2000 (PC)
Messages: 6 777
|
Bonsoir
Dire que je me suis embêté (mais pas trop) à en créer une d'usine à gaz: mad: Code:
Sub MOYENNEtest()
Dim dercol As Long
Dim Plage As Range
Dim cell As Range
dercol = Range("IV4").End(xlToLeft).Column
Set Plage = Range("B4", Range("B65536").End(xlUp))
For Each cell In Plage
debut = cell.Address(0, 0) 'cf Pierrot93
fin = cell.Offset(0, dercol - 2).Address(0, 0)
cell.Offset(0, -1).Formula = "=AVERAGE(" & debut & " : " & fin & ")"
Next cell
End Sub
Dernière modification par Staple1600 ; 27/06/2007 à 11h25. |
|
|
|
|
|
#5 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Version Excel : Excel 2003 (PC)
Messages: 4 750
|
Bonjour Pierrot, Marc, Didier, Stapple
une autre solution vba, renvoie en A1 la moyenne de la ligne 2 : Code:
Range("A1").Value = WorksheetFunction.Average(Range("A2:" & Range("IV2").End(xlToRight).Address(0, 0)))
@+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
|
|
#6 (permalink) |
|
XLDnaute Barbatruc
Date d'inscription: août 2006
Version Excel : Excel 2003 (PC)
Messages: 4 750
|
Re
ton fichier en retour, avec une procédure événementielle. @+
__________________
Pierrot On se trouve toujours suffisamment intelligent, vu que c'est avec ce que l'on a qu'on juge !!! |
|
|
|
![]() |
| Liens sociaux |
| Outils de la discussion | |
|
|
Discussions similaires
|
||||
| Discussion | Auteur | Forum | Réponses | Dernier message |
| moyenne | vincentbzh | Forum Excel | 6 | 22/10/2006 19h36 |
| moyenne de course | jack | Forum Excel | 4 | 31/03/2005 11h16 |
| pb de moyenne | fred | Forum Excel Downloads - Archives | 2 | 16/12/2004 13h57 |
| PB de Moyenne ! | Thony | Forum Excel Downloads - Archives | 6 | 11/08/2003 13h38 |
| moyenne ?? | Evelyne | Forum Excel Downloads - Archives | 3 | 15/03/2003 22h22 |