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.
Tout roule (presque) tant que je n'ai pas protégé la feuille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 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 = 15 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 = 15 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
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...
Partager