Bonjour à toutes et à tous,
J'ai écris le code suivant :
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Déclaration des variables
Dim i As Long
Dim SmasseA1 As Double, SmasseA2 As Double, SmasseB1 As Double, SmasseB2 As Double
Dim SmasseMA1 As Double, SmasseMA2 As Double, SmasseMB1 As Double, SmasseMB2 As Double
Dim KA1 As Long, KA2 As Long, KB1 As Long, KB2 As Long
Dim KMA1 As Long, KMA2 As Long, KMB1 As Long, KMB2 As Long
For i = 10 To 100
If Cells(i, "B") = "A" Then
If Cells(i, "C") = "1" Then
SmasseA1 = SmasseA1 + Cells(i, "D").Value
KA1 = KA1 + 1
SmasseMA1 = SmasseMA1 + Cells(i, "D").Value
KMA1 = KMA1 + 1
ElseIf Cells(i, "C") = "2" Then
SmasseA2 = SmasseA2 + Cells(i, "D").Value
KA2 = KA2 + 1
SmasseMA2 = SmasseMA2 + Cells(i, "D").Value
KMA2 = KMA2 + 1
End If
ElseIf Cells(i, "B") = "B" Then
If Cells(i, "C") = "1" Then
SmasseB1 = SmasseB1 + Cells(i, "D").Value
KB1 = KB1 + 1
SmasseMB1 = SmasseMB1 + Cells(i, "D").Value
KMB1 = KMB1 + 1
ElseIf Cells(i, "C") = "2" Then
SmasseB2 = SmasseB2 + Cells(i, "D").Value
KB2 = KB2 + 1
SmasseMB2 = SmasseMB2 + Cells(i, "D").Value
KMB2 = KMB2 + 1
End If
End If
Next i
'Moyenne des masses
Range("I10") = SmasseA1 / KA1
Range("I11") = SmasseA2 / KA2
Range("I12") = SmasseB1 / KB1
Range("I13") = SmasseB2 / KB2
'Moyenne des masses max
Range("J10") = SmasseMA1 / KMA1
Range("J11") = SmasseMA2 / KMA2
Range("J12") = SmasseMB1 / KMB1
Range("J13") = SmasseMB2 / KMB2
End Sub
J'ai un tableau avec 4 colonnes qui me sert de base de données:
- Equipements ( A ou B dans l'exemple mais peut prendre d'autres nom)
- Type (1 ou 2 dans l'exemple mais peut prendre d'autre nom)
- Masse
- Masse Max
Dans un autre tableau sur la même feuille, je souhaite réaliser la moyenne des masses et de masses max pour chaque équipement identique de même masse.
Le code que je vous ai donné fonction mais demande à être optimiser car au lieu d'avoir A, B et 1, 2. Je souhaiterai Excel face lui même les regroupements équipements et type si cela est possible.
J'espère que je me suis bien fait comprendre!
Je vous remercie par avance pour votre aide.