Cette macro ne fonctionne plus sur feuill protégée
Bonsoir,
Cette macro m'aura a rendu dingue, que des soucis ...
Elle fonctionne mais dès que je protège la feuille, cela me mais un bug.
Je ne sais plus quoi faire, que des soucis avec cette macro.
C'est une macro dans un module déjà
Sub changercouleur1()
' Changercouleur Macro
Application.ScreenUpdating = False
Dim cellule
cellule = Sheets("Calcul").Range("BC4")
With Sheets("TDB").Shapes.Range(Array("TextBox 12"))
'With ActiveSheet.Shapes.Range(Array("TextBox 12","TextBox 24" ))
If cellule < 1 Then
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
Else
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.150000006
.Transparency = 0
.Solid
End With
End If
End Withelle est appelée à partir de la feuille TAB
Mais dès que je protège la feuille TAB, c'est plus bon, ca bug
de plus j'ai l'impression que lorsque je vais dans un autre onglet, ca bug aussi du coup
Vraiment, j'aurai eu que des problèmes avec cette macro
Si vous voyez ce qui ne va pas, aidez moi, car vraiment, je n'en peux plus
Tout ca pour changer un chiffre de couleur dans une zone texte
Il me met en jaune cette ligne de code
.ForeColor.ObjectThemeColor = msoThemeColorAccent2Suggestion :
- au début de la macro, lance une procédure enlevant la protection sur la ou les feuilles incriminées
- à la fin de la macro, lance une autre procédure remettant la protection...
Le tout est très facile à rédiger avec l'enregistreur de macro...
Cordialement, Daniel
J'ai rajouté une ligne de code,
Ca semblait marché, mais il y a encore un problème
Voilà le code avec la nouvelle ligne
Sub changercouleur1()
' Changercouleur Macro
Application.ScreenUpdating = False
ActiveSheet.Protect DrawingObjects:=False
Dim cellule
cellule = Sheets("Calcul").Range("BC4")
With Sheets("TDB").Shapes.Range(Array("TextBox 12"))
'With ActiveSheet.Shapes.Range(Array("TextBox 12","TextBox 24" ))
If cellule < 1 Then
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorAccent2
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0
.Transparency = 0
.Solid
End With
Else
With .TextFrame2.TextRange.Font.Fill
.Visible = msoTrue
.ForeColor.ObjectThemeColor = msoThemeColorText1
.ForeColor.TintAndShade = 0
.ForeColor.Brightness = 0.150000006
.Transparency = 0
.Solid
End With
End If
End With
ActiveSheet.Protect DrawingObjects:=True
End Subla nouvelle ligne au début et à la fin de la macro
ActiveSheet.Protect DrawingObjects:=False
macro
ActiveSheet.Protect DrawingObjects:=TrueMais le souci
C'est que lorsque je vais sur une autre feuille non protégée, la maco bug et me protège la feuille
Je n'y comprend plus rien, déjà que je suis débutant, alors c'est pas gagné !!!
j'ai rajouté cette ligne de code au début et à la fin , ca a l'air d'être bon
Sheets("TDB").Protect DrawingObjects:=False
MACRO
Sheets("TDB").Protect DrawingObjects:=True