S'il y a beaucoup de lignes à masquer, il n'est pas évident que le gain de temps soit significatif (car -in fine- cela équivaut quand même à parcourir toutes les lignes...)
Rajouter simplement sur la première ligne :
Application.ScreenUpdating = False
et voir le résultat.
Après on peut également tenter :
Sub Masquer_lignes()
Dim Arr, i%
Application.ScreenUpdating = False
Arr = Range("M27:Q367").Value
For i = 1 To 341
If Arr(i, 1) + Arr(i, 3) + Arr(i, 5) = 0 Then Rows(i + 26).Hidden = True
Next
End Sub
Ce qui prend chez moi encore une 'tite dizaine de secondes...
A+