Private Sub CommandButton1_Click()
'déclaration des variables
Dim t As Worksheet 'déclare la variable t (onglet Tableau)
Dim c As Worksheet 'déclare la variable c (onglet Charge)
Dim cel As Range 'déclare la variable cel (CELlule)
Dim pl As Range 'déclare la variable pl (PLage)
Dim rt As Range 'déclare la variable rt (Recherche dans onglet Tableau)
Dim rc As Range 'déclare la variable rc (Recherche dans onglet Charge)
Dim tmec As Integer 'déclare la variable tmec (Total MECanique)
Dim telec As Integer 'déclare la variable telec (Total ELECtrique)
Dim tpneu As Integer 'déclare la variable tpneu (Total PNEUmatique)
Dim ttraj As Integer 'déclare la variable tmec (Total TRAJet)
Dim pa As String 'déclare la variable pa (Première Adresse)
Set t = Sheets("TABLEAU") 'définit l'onglet t
Set c = Sheets("CHARGE") 'définit l'onglet c
Set pl = t.Range("F1:F" & t.Range("F65536").End(xlUp).Row) 'définit la plage pl
For Each cel In pl 'boucle sur toute les cellules cel de la plage pl
'condition : si la cellule est differente de "DMV -2S" et si l'interieur de la cellule n'est pas rouge
If cel.Value <> "DMV -2S" And cel.Interior.ColorIndex <> 3 Then
'définit la recherche rt (recherche de toutes les occurrences de la valeur de la cellule dans la plage pl, après F1, mot entier)
Set rt = pl.Find(cel.Value, Range("F1"), xlValues, xlWhole)
pa = rt.Address 'définit l'adresse de la première occurrence trouvée
Do 'exécute
rt.Interior.ColorIndex = 3 'colore l'intérieur de la cellule de rouge
tmec = tmec + CInt(rt.Offset(0, 2).Value) 'définit le total tmec
telec = telec + CInt(rt.Offset(0, 4).Value) 'définit le total telec
tpneu = tpneu + CInt(rt.Offset(0, 6).Value) 'définit le total tpneu
ttraj = ttraj + CInt(rt.Offset(0, 8).Value) 'définit le total ttraj
Set rt = pl.FindNext(rt) 'redéfinit la recherche (occurrence suivante)
Loop While Not rt Is Nothing And rt.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
'définit la recherche rc (recherche la valeur de la cellule dans la colonne B de l'onglet "CHARGE" (mot entier)
Set rc = c.Columns(2).Find(cel.Value, , xlValues, xlWhole)
rc.Offset(0, 1).Value = tmec 'place en colonne C le total tmec
rc.Offset(0, 2).Value = tpneu 'place en colonne D le total tpneu
rc.Offset(0, 3).Value = telec 'place en colonne E le total telec
rc.Offset(0, 4).Value = ttraj 'place en colonne F le total ttraj
tmec = 0 'réinitialise la variable tmec
telec = 0 'réinitialise la variable telec
tpneu = 0 'réinitialise la variable tpneu
ttraj = 0 'réinitialise la variable ttraj
End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
t.Columns(6).Interior.ColorIndex = xlNone 'supprime la couleur rouge dans la colonne F
End Sub