Sur l'évènement d'ouverture du classeur, stocker dans une variable globale le nom de la feuille active (feuilleActive = ActiveSheet.Name).
Sur l'évènement WorkSheet_Activate de chaque feuille, remplir une autre variable avec ce contenu (feuillePrecedente = feuilleActive) et modifier le contenu de feuilleActive en conséquence (feuilleActive = ActiveSheet.Name)
Pour revenir en arrière il suffit de créer une macro qui se sert de feuillePrecedente pour activer la bonne feuille.
Tu peux même gérer un historique des activations dans une collection.
Il existe sûrement d'aurtes manières d'aborder le problème, mais celle-là me semble simple.
Ne pas oublier, dans le cas de l'insertion d'un nouvel onglet, de mettre le bout de code nécessaire sur l'évènement WorkSheet_Activate.