Je n'ai pas trouvé d'autres solution me permettant d'adapter la macro (du type sélection des valeur numérique seulement ou désélection des formules). Et malheureusement les solutions proposées était trop complexe et longues à exécuter pour servir de solution dans mon cas.
Je préciserai donc pour les futur visiteurs que les solutions exposé peuvent mettre quelques minutes à s'exécuter mais sont très adapté à un tableau changeant constamment de taille.
Dans mon cas, on parlait de rajouter quelques lignes de temps à autre, pas de de modification énorme du nombre de lignes.
Ma solution a donc était de faire en sorte que mes totaux ne soient plus dans les colonnes à nettoyer et j'ai utilisé un macro nettoyant toute les colonnes.
Ex: Je devais nettoyer les colonnes O & P et mes sous totaux étaient des case fusionnés de O à R, j'ai donc laissé les totaux dans les cases fusionnés Q à R, c'est beaucoup moins esthétique (pas centré sur les 4 colonnes) mais plus simple.
Je nettoie donc de O9 (début des valeurs) à P300 (après la fin de mon tableau afin d’anticiper les futurs ajouts de lignes).
Pour les zéro qui apparaitrait dans des cellules vide j'ai simplement mis la même couleur en écriture et en fond.
Cela marchera donc pas si vous avez des cases à ne pas effacer !
Macro :
Sub reset ()
Range("o9:o300").Value = 0
Range("P9:P300").ClearContents
End Sub
Je vous inviter à mettre une check box pour ce genre de macro qui supprime du contenue (car un ctrl+Z n'y fera rien), par ex :
Sub 'nom de la macro
If MsgBox("Êtes-vous sur de vouloir remettre à zéro la feuille ?", vbYesNo, "Reset confirmation") = vbYes Then
'reste de la macro
End if
End Sub
Merci pour vos réponses, même si j'ai dû me résoudre à utiliser une solution plus simple, j'aurai appris des choses que la sélection dynamique et sur comment réduire le temps d'une macro.