La protection de feuille pose un dilemme connu. Sans mot de passe, elle se lève en deux clics et ne protège rien. Avec mot de passe, elle finit par bloquer la seule personne qui en avait besoin, le jour où le mot de passe est perdu, et la direction refuse souvent le principe même.
Une autre voie consiste à surveiller le classeur par le code, en deux temps. À chaque changement de sélection, on mémorise le nombre de colonnes occupées. À chaque modification, on le compare à celui d’avant : s’il a changé, une colonne a été ajoutée ou supprimée, et l’opération est annulée.
L’annulation passe par Application.Undo, exactement comme un Ctrl+Z. Le détail qui compte est l’encadrement par EnableEvents : sans lui, l’annulation serait elle-même vue comme une modification et relancerait l’événement en boucle.
L’utilisateur voit sa suppression se défaire d’elle-même, avec un message qui explique pourquoi. Aucun mot de passe n’est en jeu, et la feuille reste modifiable partout ailleurs.