Bon, je n'ai pas trouvé autre chose que de sauvegarder la feuille (ou le classeur!) ou de faire la macro inverse.
1) Pour la sauvegarde de feuille on peut faire en sorte que la macro travaille sur une copie; pour copier une feuille la macro peut utiliser:
Sheets("nom de la feuille à copier").Copy Before:=Sheets(kPosition)
nomCree = Sheets(kPosition).Name
avec kPosition entre 1 et ThisWorkbook.Worksheets.Count + 1 La nouvelle feuille est automatiquement activée et ça va si vite qu'on s'aperçoit même pas qu'on est sur une autre feuille. Pour "revenir" avant la macro on n'a qu'à supprimer la nouvelle feuille, par exemple avec:
Function deleteFeuille(ByVal f As Worksheet) As Worksheet
' Retourne Nothing si Feuille suprimée, ou la Feuille sinon
Application.DisplayAlerts = False
On Error GoTo continue
f.Delete: Set f = Nothing
continue:
Set deleteFeuille = f: On Error GoTo 0
Application.DisplayAlerts = True
End Function
2) La macro inverse pour moi c'était facile, car je voulais signaler certaines cellules avec une couleur, et revenir ensuite aux couleurs initiaux. La première macro mémorise les coordonnées (i, j) des cellules signalées et leur Interior.Color dans un array déclaré en dehors des macros (dans la partie globale) avec
Dim a(1 To 10, 1 To 3), kk1 As Integer
(kk1 <= 10). Ainsi la macro inverse sera remettre les couleurs initiaux.
Pour faire sympa, on peut attacher la macro inverse à un bouton perso mis dans la barre d'outils. Pour faire ça voir ici https://forum.excel-pratique.com/viewtopic.php?t=39061.