Format plusieurs label sous conditions dans Userform

Bonjour,

Je reviens vers vous car je sèche sur le format d'un code.

Voilà ce que je souhaite faire : mettre en forme plusieurs label (genre 30) d'un userform selon une condition : si le caption ="N/A" alors tous les labels (qui ont un nom qui commence par Lbl...) alors je veux que le font soit noir.

Je sais ne sais pas comment le faire appliquer à tous les labels d'un seul coup. Je ne veux pas avoir à saisir la conditions pour chacun de mes labels (trop long)

merci par avance pour votre aide

Bonjour Mayolis

Essaie de mettre ce code :

Dim Ctrl As Control

For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "Label" And Ctrl.Name Like "Lbl*" Then
    If Ctrl.Caption = "N/A" Then
        Ctrl.BackColor = -2147483641
        MsgBox "Noir"
    End If
End If
Next

Dis moi

Bonjour,

...Grillé ! C'est bon je m'en vais...

A+

Bonjour Galopin

Désolée de t'avoir devancé, pourtant tu es bien meilleur que moi!!

Bonne journée

Pas de quoi être désolé au contraire...

Mais peut-être que l'utilisation de .Tag serait bénéfique surtout s'il y a beaucoup de Label...

A+

Bonsoir à tous

Galopin, je savais bien que tu étais meilleur : je ne connais pas "tag"...

Il est vrai que je suis une retraitée et que je ne travaille sur Excel que de temps en temps pour mon plaisir..

Bonne soirée à tous

C'est parfait merci beaucoup. je vais pouvoir l'adapter comme je le veux.

j'ai toujours la réponse que j'attends sur ce site: vous êtes géniaux !!!!!!!!!!!!!

[Patty] et Mayolis

Dans presque tous les contrôles, dans la fenêtre des propriétés, il y a une propriété Tag

En affectant une valeur quelconque à la série de contrôles à vérifier ça permet de distinguer quelques contrôles parmi plein d'autres

Ainsi parmi des TextBox on peut distinguer ceux qui ont un tag de ceux qui n'en ont pas et on peux même distinguer ceux qui ont le Tag "A" de ceux qui ont le Tag "B" ou "C" ou "rien du tout". C'est souvent plus facile à utiliser que le Name ou le Caption...

C'est particulièrement intéressant pour tous les contrôles obligatoires : Plus besoin de faire une macro par contrôle pour vérifier si une saisie à été faite : YAKA vérifier à la validation si tous ceux qui ont un Tag sont bien remplis... Sinon on les sélectionne et on renvoie au contrôle non rempli...

Ensuite la macro est la même.

Dim Ctrl As Control

For Each Ctrl In UserForm1.Controls
If TypeName(Ctrl) = "Label" And Ctrl.Tag = "A" Then
    If Ctrl.Caption = "N/A" Then
        Ctrl.BackColor = -2147483641
        MsgBox "Noir"
    End If
End If
Next

A+

Bonsoir le forum

Bonsoir Mayolis, Patty5046, galopin01

Très bonne explication concernant l'usage de la propriété "Tag", peu utilisée.

Sans utiliser le TypeName (Le Tag prend le relais) et en plus condensé :

Private Sub CommandButton1_Click()
Dim Ctrl As Control
For Each Ctrl In Me.Controls
If Ctrl.Tag = "Lbl" And Ctrl.Caption = "N/A" Then
Ctrl.BackColor = vbBlack  
End If
Next Ctrl
End Sub

Bonjour à tous

Merci à Galopin et Eric d'expliquer le Tag

Bonne journée à tous

Rechercher des sujets similaires à "format label conditions userform"