Le passage par LibreOffice n'a rien d'ultime, c'est même d'une grande banalité. Et un classique dans le traitement de la corruption de classeurs (j'ai eu l'occasion d'en sauver plus d'un, même dans des environnements Windows où les versions d'Excel sont pourtant équipés de convertisseurs plus puissants que ceux des versions pour Mac).
Les macros peuvent éventuellement passer, mais ce n'est pas tellement utile. Mieux vaut recopier le code sur une page TextEdit et le recoller après traitement dans un module vierge. Comme ça, c'est nettoyé aussi (il ne faut pas croire, la corruption, ça peut aussi toucher les modules VBA).
Tant mieux si tu arrives à résoudre le problème à l'aide d'une macro à l'ouverture. On peut toutefois craindre que ça alourdisse inutilement le classeur (et que ça rajoute des risques de corruption, évidemment). Mais ce genre de "petites alertes" n'est pas à prendre trop à la légère, tu risques un jour d'avoir un blocage complet du classeur.