Vilas sait qu’il peut protéger une feuille de calcul afin que les utilisateurs ne puissent pas supprimer des cellules. Cependant, il a besoin d’empêcher la suppression de cellules sans utiliser la protection de feuille de calcul. (Vilas ne parle pas de la suppression du contenu des cellules, mais de la suppression réelle des cellules afin que les cellules environnantes doivent se déplacer vers la gauche ou vers le haut.) Il se demande s’il existe un moyen d’empêcher un utilisateur de supprimer des cellules, sans protéger la feuille de calcul.

Il n’existe aucun moyen direct de le faire dans Excel. Ce serait bien si Excel fournissait un moyen de créer un gestionnaire d’événements qui était appelé chaque fois qu’une cellule était supprimée, mais ce n’est pas le cas. (L’événement Worksheet_Change est apparemment déclenché chaque fois que le contenu d’une cellule est modifié, mais pas lorsqu’une cellule est entièrement supprimée.) Pour cette raison, l’utilisation d’une macro pour protéger vos cellules contre la suppression n’est pas la solution.

La meilleure solution que nous ayons pu trouver consiste à tirer parti d’une bizarrerie dans la façon dont Excel gère les formules matricielles. À titre d’exemple, supposons que vous avez des données dans la plage A1: L37 et que vous ne voulez pas que les cellules de cette plage soient supprimées. Suivez ces étapes générales:

  1. Sélectionnez la plage de cellules juste à droite de votre bloc que vous souhaitez protéger. Dans ce cas, sélectionnez les cellules M1: M37.

  2. Tapez = «  » et appuyez sur Maj + Ctrl + Entrée. Vous avez maintenant créé une formule matricielle ne rien faire qui prend toute la plage M1: M37.

  3. Sélectionnez la plage de cellules juste en dessous du bloc de cellules que vous souhaitez protéger. Dans ce cas, sélectionnez les cellules A38: L38.

  4. Tapez = «  » et appuyez sur Maj + Ctrl + Entrée. Vous avez maintenant créé une formule matricielle ne rien faire qui prend toute la plage de A38: L38.

À ce stade, vous ne pouvez supprimer aucune cellule du bloc de données (A1: L37), ni aucune ligne 1 à 37 ou aucune colonne A à L.

Chaque fois que vous essayez, Excel affiche un message indiquant «Vous ne pouvez pas modifier une partie d’un tableau». La seule façon de supprimer des cellules, des lignes ou des colonnes dans le bloc de données est de commencer par supprimer les formules matricielles qui seraient affectées. En d’autres termes, vous devez d’abord supprimer la colonne M ou la ligne 38.

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (10255) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.

Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:

link: / excelribbon-Stopping_the_Deletion_of_Cells [Arrêt de la suppression des cellules].