![]() |
|
Forum
|
|
|
#1 (permalink) |
|
Guest
Messages: n/a
|
Bonjour,
Je suis à la recherche du code me permettant d'effectuer la moyenne sur une plage de cellules définie par des variables, sélectionée de la manière suivante (code que j'ai trouvé sur une page de ce forum, MERCi) : 'définition de la plage de cellule à moyenner: iStartRow = 8: iStartCol = Cells(1, 1) iendRow = 8: iendCol = Cells(2, 1) Range(Cells(iStartRow, iStartCol), Cells(iendRow, iendCol)).Select à partir de là je vois pas comment exécuter un calcul cur cette plage... merci pour vos aides précieuses Martin |
| ANNONCES | |||
|
|
|
|
#2 (permalink) |
|
Guest
Messages: n/a
|
Bonjour le Forum et bonjour Martin
Je ne sais pas où tu as eu ce bout de code mais il ne correspond pas à une façon habituelle de définir une plage. Pour définir une plage, le plus simple est de définir la première et la dernière cellule de la plage. Exemple de macro : Sub Moyenne() 'Déclaration de variable Dim Plage As Range 'Définition de la variable Set Plage = Range("A1:B8") 'Renvoi de la moyenne de la plage sur la cellule C1 Range("C1") = Application.Average(Plage) End Sub Cordialement Bernard |
|
|
#3 (permalink) |
|
Guest
Messages: n/a
|
Bonjour Martin, Bernard
autre solution (effectivement, Bernard, la manière est bizarre) Tu sélectionnes ta zone et... Sub moyenner() lig_deb = Selection.Row col_deb = Selection.Column col_fin = Cells(lig_deb, 256).End(xlToLeft).Column lig_fin = Cells(65536, col_deb).End(xlUp).Row 'exclusion si pas de valeurs numériques If Application.Sum(Range(Cells(lig_deb, col_deb), Cells(lig_fin, col_fin))) = 0 Then MsgBox "plage vide" Exit Sub End If ' calcule de la moyenne moy = Application.Average(Range(Cells(lig_deb, col_deb), Cells(lig_fin, col_fin))) End Sub A+ Michel (at work) |
| Liens sociaux |
| Outils de la discussion | |
|
|