VBA · intermédiaire
Empêcher la suppression de colonnes sans protéger la feuille
Protéger la structure d’un tableau partagé, sans mot de passe à conserver ni à transmettre.
- Workbook_SheetChange
- UsedRange.Columns.Count
- Application.Undo
Comme dans Word, une saisie mal orthographiée passe en rouge, doublement soulignée, dès que l’on valide la cellule.
Vidéo publiée sur LinkedIn, chargée seulement si vous cliquez dessus. Au clic, LinkedIn peut déposer des traceurs sur votre appareil : en savoir plus.
L’explication
Excel dispose d’un vérificateur d’orthographe (Révision, Orthographe), mais il ne travaille que sur demande : rien ne signale une faute au moment de la saisie. Quelques lignes de VBA comblent ce manque grâce à Application.CheckSpelling, qui renvoie True si le mot est correctement orthographié et False sinon.
Le code se place dans l’événement Worksheet_Change de la feuille, qui se déclenche à chaque modification de cellule. Si CheckSpelling renvoie False, la cellule passe en rouge avec un double soulignement. Sinon, le soulignement est retiré et la couleur revient à l’automatique : une faute corrigée efface d’elle-même son signalement.
À savoir CheckSpelling vérifie un mot, pas une phrase : la méthode convient aux cellules qui contiennent un seul mot, comme une liste de métiers. Si plusieurs cellules sont modifiées d’un coup (collage, suppression), Target.Value devient un tableau et la macro s’arrête sur une erreur. Classeur .xlsm, macros autorisées.
Private Sub Worksheet_Change(ByVal Target As Range)
If Application.CheckSpelling(Target.Value) = False Then
' --- Si une faute d'orthographe est détectée ---
'Double soulignement
Target.Font.Underline = xlUnderlineStyleDouble
'Couleur de la police en rouge
Target.Font.Color = 255
Else
' --- Ou si le mot est correctement écrit ---
'Arrêt du double soulignement
Target.Font.Underline = False
'Couleur de la police en automatique (noir)
Target.Font.ColorIndex = xlAutomatic
End If
End Sub
Pour aller plus loin
VBA · intermédiaire
Protéger la structure d’un tableau partagé, sans mot de passe à conserver ni à transmettre.
VBA · intermédiaire
Empêcher qu’une saisie écrase une formule dans un fichier partagé, sans protection de feuille ni mot de passe à gérer.
VBA · intermédiaire
Un TCD ne se met pas à jour tout seul. Il suffit d’oublier un clic pour présenter des chiffres périmés.
Prendre contact
Votre contexte suffit pour démarrer : nombre de personnes concernées, outils en place, échéance. Je réponds avec une proposition de programme et un devis.