Texte dans une Fenêtre Label
bonjour,
voici une partie de mon code , j'aimerais que lorsque ma checkbox est décochée que le text de mon label soit rayé et non rayé lorsque ma checkbox est coché
ça fonctionne pour mon label 14 mais pas le label 11 une idée?
je pense que c'est dans les propriétés du label mais les 2 ont les mêmes propriété...
merci de votre aide
Private Sub UpdateControls()
' Si CheckBox42 est cochée
If CheckBox42.Value = True Then
CheckBox43.Enabled = False
CheckBox44.Enabled = False
TextBox5.Text = "Veille"
Else
CheckBox43.Enabled = True
CheckBox44.Enabled = True
End If
' Si CheckBox43 est cochée
If CheckBox43.Value = True Then
With Label14
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
End With
TextBox5.Text = "Vigilance"
Else
With Label14
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
End With
End If
' Si CheckBox44 est cochée
If CheckBox44.Value = True Then
With Label11
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
End With
TextBox5.Text = "Pré-alerte"
Else
With Label11
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
End With
End If
' Si aucune des 3 CheckBox n'est cochée
If CheckBox42.Value = False And CheckBox43.Value = False And CheckBox44.Value = False Then
TextBox5.Text = ""
End If
End Subj'ai oublié de dire que mon texte reste barré en permanence ...
Bonjour, difficile à juger le code appliqué semble vraiment identique. Peut-etre que celq est du à un autre Event qui bloque l'actualisation du Label?
Avez-vous essayé de mettre un Breakpoint (clic à gauche au niveau de la ligne sur laquelle arreter l'execution), et suivi l'exécution pas à pas ? Je pense que cela est nécessaire pour comprendre. En faisant ceci gardez un oeil sur les variables locales (Menu Vue > Variables locales). Cela vous permet de voir si le Label est modifié ou non.
Bonjour Brice2b, Saboh12617,
J'espère que dans le code de chaque checkbox, style Checkboxnn_Click tu as un renvoi à la macro UpdateControls()
Sinon aucun événement ne sera effectif. Il restera bloqué au premier contrôle actif
Bonjour x cellus,
Oui j'ai bien bien mis le renvoi update controls.
Mon problème est que le label reste rayé...
Je bloque un peu. J'ai essayé la solution de s'abonner mais je ne vois pas...
J'ai testé mais en modifiant la construction de ton UpdateControls. Ce n'est pas la procédure If then Else qui englobe le With / End With.
Mais c'est l'inverse. Et cela fonctionne correctement. Voir ci-dessous. On cible directement le label et on applique la condition qui selon la valeur du checkbox formatera le label.
' Si CheckBox43 est cochée
With Label14
If CheckBox43.Value = True Then
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
TextBox5.Text = "Vigilance"
Else
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
End if
End WithBonjour X cellus,
Private Sub UpdateControls()
' Si CheckBox42 est cochée
If CheckBox42.Value = True Then
CheckBox43.Enabled = False
CheckBox44.Enabled = False
TextBox5.Text = "Veille"
Else
CheckBox43.Enabled = True
CheckBox44.Enabled = True
End If
' Si CheckBox43 est cochée
With Label14
If CheckBox43.Value = True Then
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
TextBox5.Text = "Vigilance"
Else
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
End If
End With
' Si CheckBox44 est cochée
With Label11
If CheckBox44.Value = True Then
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
TextBox5.Text = "Pré-alerte"
Else
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
End If
End With
' Si aucune des 3 CheckBox n'est cochée
If CheckBox42.Value = False And CheckBox43.Value = False And CheckBox44.Value = False Then
TextBox5.Text = ""voici comment j'ai modifié mon code avec ce que vous m'avez envoyé, mais rien y fais j'ai toujours le label 11 reste rayé.
voici comment j'ai fait pour d'autre checkbox où ça fonctionne
Private Sub UserForm_Initialize()
' Par défaut, cocher CheckBox47 et décocher CheckBox45 et CheckBox46
CheckBox47.Value = True
CheckBox45.Value = False
CheckBox46.Value = False
CheckBox45.Enabled = False
CheckBox46.Enabled = False
CheckBox45.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
CheckBox46.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
UpdateControls
End Sub
Private Sub CheckBox45_Click()
If CheckBox45.Value = True Then
CheckBox46.Enabled = False
With Label16
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
.BorderStyle = fmBorderStyleSingle
.SpecialEffect = fmSpecialEffectFlat
.BackColor = RGB(255, 255, 255) ' Couleur de fond blanche
.BorderColor = RGB(255, 0, 0) ' Bordure rouge
End With
Else
CheckBox46.Enabled = True
With Label16
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
.BorderStyle = fmBorderStyleNone
.SpecialEffect = fmSpecialEffectFlat
.BackColor = RGB(240, 240, 240) ' Couleur de fond grise
End With
End If
End Sub
Private Sub CheckBox46_Click()
If CheckBox46.Value = True Then
CheckBox45.Enabled = False
With Label15
.Font.Strikethrough = False
.ForeColor = RGB(0, 0, 0) ' Couleur du texte en noir
.BorderStyle = fmBorderStyleSingle
.SpecialEffect = fmSpecialEffectFlat
.BackColor = RGB(255, 255, 255) ' Couleur de fond blanche
.BorderColor = RGB(255, 0, 0) ' Bordure rouge
End With
Else
CheckBox45.Enabled = True
With Label15
.Font.Strikethrough = True
.ForeColor = RGB(128, 128, 128) ' Couleur du texte en gris
.BorderStyle = fmBorderStyleNone
.SpecialEffect = fmSpecialEffectFlat
.BackColor = RGB(240, 240, 240) ' Couleur de fond grise
End With
End If
End Sub
Private Sub CheckBox47_Click()
If CheckBox47.Value = True Then
CheckBox45.Value = False
CheckBox46.Value = False
CheckBox45.Enabled = False
CheckBox46.Enabled = False
CheckBox42.Value = True
CheckBox43.Value = True
CheckBox44.Value = True
CheckBox42.Enabled = False
CheckBox43.Enabled = False
CheckBox44.Enabled = False
TextBox5.Text = "Tout est activé"
Else
CheckBox45.Enabled = True
CheckBox46.Enabled = True
CheckBox42.Enabled = True
CheckBox43.Enabled = True
CheckBox44.Enabled = True
TextBox5.Text = ""
End If
UpdateControls
End Subbien
Bonjour Brice,
Pourriez-vous joindre un fichier avec votre UserForm ?
Votre code est assez lourd et on trouvera beaucoup plus vite la solution si on peut analyser l'exécution, plutot qu'en lisant un long pavé (qui pourrait etre raccourci, mais ce n'est pas le sujet ici).