1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub Macro1()
Dim PL As Range 'déclare la variable PL (PLage)
Dim OB As Worksheet 'déclare la variable OB (Onglet Bilan)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim C As Byte 'déclare la variable C (Compteur)
Dim CEL As Range 'déclare la variable CEL (CELlule)
Dim S As Integer 'déclare la variable S (Somme)
Dim AD As String 'déclare la variable AD (ADresse)
Set PL = Application.InputBox("Sélectionner la plage variable", "Plage", Type:=8) 'définit la boîte d'entrée PL qui va déterminer la plage variable
Set OB = Worksheets("Bilan") 'définit l'onglet OB
For Each O In Sheets 'boucle sur tous les onglets O du classeur
If O.Name <> "Bilan" Then O.Select Replace:=False: C = C + 1 'sélectionne les onglets qui ne se nomment pas "Bilan" et incrémente le compteur C
Next O 'prochain onglet de la boucle
For Each CEL In PL 'Boucle 1 : sur toutes les cellule CEL de la plage PL
S = 0 'réinitialise la somme S
AD = CEL.Address(0, 0) 'définit l'addresse AD de la cellule
For Each O In ThisWorkbook.Windows(1).SelectedSheets 'boucle 2 : sur tous les onglets sélectionnés
S = S + O.Range(AD).Value 'définit la somme S de la cellule à l'adresse AD de l'onglet de la boucle
Next O 'prochain onglet de la boucle 2
OB.Range(AD).Value = S / C 'renvoie le total divisé par le compteur (la moyenne) dans la cellule à l'adresse AD de l'onglet OB
Next CEL 'prochaine cellule de la boucle 1
End Sub |
Partager