Pour commencer :
Plutôt que de répéter plusieurs fois des instructions similaires :
With ACTIVITE1
For i = 3 To 7
ACTIVITE1.AddItem Sheets("LISTES").Cells(i, 8)
Next
End With
Pourquoi ne pas écrire directement :
' Famille des Activités
For i = 3 To 7
ACTIVITE1.AddItem Sheets("LISTES").Cells(i, 8)
ACTIVITE2.AddItem Sheets("LISTES").Cells(i, 8)
ACTIVITE3.AddItem Sheets("LISTES").Cells(i, 8)
ACTIVITE4.AddItem Sheets("LISTES").Cells(i, 8)
ACTIVITE5.AddItem Sheets("LISTES").Cells(i, 8)
Next
En plus votre bloc With Truc...End With est inutile car aucun objet ne commence par un ".", et vous prenez la peine de répéter le nom de l'objet parent "Truc".
Concernant votre question, vous pouvez essayer de remplacer les instructions du type :
Val(TONNE1.Value)
Par :
Evaluate("=" & Replace(TONNE1.Value, "=", ""))