Modifier les attributs du texte d'une cellule dans un document protégé.

Anonyme
2016-03-18T10:12:35+00:00

Bonjour,

J'espère que vous pourrez m'aider à comprendre pourquoi ma macro ne fonctionne pas comme je voudrais et que faire pour y arriver.

J'ai une feuille excel qui me sert de "formulaire" pour  enregistrer les réponses à un certain nombre de questions.

Certaines cellules sont utilisées pour des choix multiples alors que d'autres font appel à des réponses ouvertes.

Ces cellules "ouvertes"  sont "unlock" et je veux y faire apparaître un texte consigne: "Insert comments here" qui disparaît dès que l'on introduit son texte de réponse.

Le texte consigne a une taille et une couleur propre, le texte de la réponse a une autre couleur et une autre taille. 

Tout cela fonctionne avec un code VBA.

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target = Range("D1") Then

        If Target.Text = "" Then

            Target.Value = "Insert Application's Name Here"

            Target.Font.Size = 14

            Target.Font.ColorIndex = 48

            Target.Font.Italic = True

        Else

            Target.Font.Size = 18

            Target.Font.Color = vbBlack

        End If        

    End If

    If Target = Range("D17") Then       

        If Target.Text = "" Then

            Target.Value = "Insert comments here"

            Target.Font.Size = 14

            Target.Font.ColorIndex = 48

            Target.Font.Italic = True

        Else

            Target.Font.Size = 14

            Target.Font.Color = vbBlack

        End If       

    End If

    If Target = Range("D19") Then      

        If Target.Text = "" Then

            Target.Value = "Insert comments here"

            Target.Font.Size = 14

            Target.Font.ColorIndex = 15

            Target.Font.Italic = True

        Else

            Target.Font.Size = 14

            Target.Font.Color = vbBlack

        End If       

    End If

    If Target = Range("D35") Then      

        If Target.Text = "" Then

            Target.Value = "Insert comments here"

            Target.Font.Size = 14

            Target.Font.ColorIndex = 15

            Target.Font.Italic = True

        Else

            Target.Font.Size = 14

            Target.Font.Color = vbBlack

        End If      

    End If

End Sub

Tout roule (presque) tant que je n'ai pas protégé la feuille.

Dès que je met la protection, j'ai un message d'erreur :

" Run-time error '1004':

Unable to set the Size property of the Font class."

Ce message n'apparait plus si j'autorise l'accès au format des cellules dans la boîte de dialogue de protection de la feuille, ce que je ne souhaite pas car cela donne la possibilité de modification du format de toutes les cellules par l'utilisateur.

Je voudrais donc pouvoir uniquement autoriser le formatage de la cellule (ou du Font dans la cellule) par mon code VBA lorsque la cellule concernée est sélectionnée.

J'ai un deuxième problème:

Le changement de couleur et d'attributs de Font fonctionne très bien sur 2 cellules (D1 et D35) et, par contre, pour les 2 autres, j'ai un premier changement qui s'effectue lors de la frappe de texte, puis lors de l'effacement, la cellule ne reprend pas les attributs de départ... 

Merci de m'aider à comprendre...

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

91 réponses

  1. DanielCo 107.7K Points de réputation
    2016-03-18T14:50:45+00:00

    Merci Daniel,

    c'est ce que nous sommes en train de mettre au point...

    Cordialement

    Comme ça n'a pas l'air d'évoluer favorablement, je me permet d'intervenir... sans ton autorisation, si tu veux bien.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Anonyme
    2016-03-18T14:45:47+00:00

    Non, non, les cellules qui sont déverrouillées sont celles dans lesquelles l'utilisateur va devoir taper du texte. Les cellules proposant un liste de choix de réponse sont verrouillées.

    Ce que je veux ce n'est pas vérifier l'adresse de cellule, mais bien modifier les attributs du texte qui est entré par l'utilisateur lorsque la feuille est protégée.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2016-03-18T14:42:26+00:00

    Re-bonjour Patrick,

    J'ai testé le code fourni, mais ça ne me donne pas le résultat recherché.

    Dans mon cas, les cellules demandant l'introduction de commentaires doivent afficher le "texte  consigne" en permanence tant que la cellule est vide.

    Dans le code fourni, le texte n'apparait qu'une fois la cellule sélectionnée.

    En gros, cette partie là fonctionne dans mon code en mode non protégé, sauf qu'il y en a 2 sur 4 qui ne veulent pas changer d'attributs...

    C'est en mode protégé que ça ne va plus.

    Par contre, je suis tout à fait d'accord que mon code peut être simplifié et optimisé, mais j'apprend à marcher avant d'essayer de courir!

    Je suis à l'étranger toute la semaine prochaine et ne pourrai sans doute pas travailler dessus, donc ne vous étonnez pas si je reste silencieux pendant tout ce temps.

    Je reviendrai certainement vers vous à mon retour si ce n'est pas encore solutionné.

    Merci de votre aide.

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2016-03-18T14:33:37+00:00

    Merci Daniel,

    c'est ce que nous sommes en train de mettre au point...

    Cordialement

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2016-03-18T14:23:31+00:00

    Bonjour,

    Quelles sont les cellules déverrouillées ? Est-ce que tu ne cherches pas plutôt à vérifier si l'adresse de la cellule saisie est D1, D17 etc ?

    Cordialement.

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire