Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Déprotéger le texte (pas l'objet) de la "ZoneTexteMessage" en gardant la feuille protégée

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous,

J'ai une "ZoneTexteMessage"
Je n'arrive pas à déprotéger le texte (pas l'objet) de la "ZoneTexteMessage" en gardant la feuille protégée

j'ai cherché un peu partout mais je n'ai pas trouvé
Depuis ce matin j'ai fait un tas d'essais sans succès

Auriez-vous le bon code ?
En cas, je joins le fichier test.

je vous remercie et vous souhaite une belle fin de dimanche,
Amicalement,
Lionel,
 

Pièces jointes

  • zone_texte.xlsm
    21.6 KB · Affichages: 18
Dernière édition:
Solution
Lionel, le code ci-joint devrait le faire
VB:
Sub protection()
    ActiveSheet.Unprotect
    [ZoneTexteMessage].Locked = True
    [ZoneTexteMessage].LockedText = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub déprotege()
    ActiveSheet.Unprotect
    [ZoneTexteMessage].Locked = True
    [ZoneTexteMessage].LockedText = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

job75

XLDnaute Barbatruc
Bonsoir Lionel, fanch55,

Je pense qu'il n'y a pas de solution avec une Zone de texte.

Par contre avec une TextBox (contrôle ActiveX) c'est facile :
VB:
Sub protection()
Feuil1.OLEObjects("TextBox1").Object.Locked = True
End Sub

Sub déprotege()
Feuil1.OLEObjects("TextBox1").Object.Locked = False
End Sub
A+
 

Pièces jointes

  • TextBox(1).xlsm
    23.3 KB · Affichages: 3

fanch55

XLDnaute Barbatruc
Lionel, le code ci-joint devrait le faire
VB:
Sub protection()
    ActiveSheet.Unprotect
    [ZoneTexteMessage].Locked = True
    [ZoneTexteMessage].LockedText = True
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
Sub déprotege()
    ActiveSheet.Unprotect
    [ZoneTexteMessage].Locked = True
    [ZoneTexteMessage].LockedText = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub
 

job75

XLDnaute Barbatruc
Merci fanch55, je ne connaissais pas la propriété LockedText.

Lorsque le curseur est dans la Zone de texte le clic sur le bouton protection n'a pas d'effet.

Il faut lancer la macro autrement, ce n'est pas bien grave.

Bonne nuit.
 

fanch55

XLDnaute Barbatruc
Bonjour @job75, Lionel,

Il y a d'autres "dommages" collatéraux :
il semblerait que les touches de navigation et le return/entrée du clavier soient également de temps en temps non opérationnels dans la zone texte ( pas de problème avec la souris ) .
J'ai modifié le code pour que ce phénomène ( sur mon poste ? ) soit moins fréquent

VB:
Sub protection()
    With ActiveSheet
        .Unprotect
        With [ZoneTexteMessage]
            .Locked = True             ' par sécurité
            .LockedText = True
            .Interior.Color = 6737151  ' orange
        End With
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlNoSelection
    End With
End Sub
Sub déprotege()
    With ActiveSheet
        .Unprotect
        With [ZoneTexteMessage]
            .Locked = True            ' par sécurité
            .LockedText = False
            .Interior.Color = 9359785 ' vert clair
        End With
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        .EnableSelection = xlNoRestrictions
    End With
    With [ZoneTexteMessage].ShapeRange.TextFrame2.TextRange
        .Characters(.Characters.Count, 0).Select
    End With
End Sub

Mais cela ne solutionne pas ce qu'a fait remarquer @job75 :
Lorsque le curseur est dans la Zone de texte le clic sur le bouton protection n'a pas d'effet.
 

Usine à gaz

XLDnaute Barbatruc
Bonjour Gérard, Bonjour fanch55, le Forum,
Je vous souhaite une belle journée

"Lorsque le curseur est dans la Zone de texte le clic sur le bouton protection n'a pas d'effet."
De mon côté, ce n'est pas un souvi car j'ai déprotégée A1 que je sélectionne pour sortir de la Zone de texte.

Merci fanch55 pour ce nouveau code,
lionel
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…