(INFO) À quoi sert la propriété Tag des contrôles ActiveX
1 réponse
Clément Marcotte
Bonjour,
En lisant un livre sur la programmation en VB6, je suis tombé sur un
passage parlant de la propriété Tag des contrôles ActiveX. Cette
propriété permet d'appliquer un traitement différent à un contrôle
ActiveX, notamment dans une boucle. N'écoutant que ma curiosité, je
suis allé voir si c'était disponible dans VBA. Je sais maintenant
qu'elle existe au moins pour le TextBox et le CommandButton d'Excel et
de Word 2002, et je ne suis pas allé voir plus loin.
Pour essayer cela, je me suis donc bâti un UserForm dans Excel, avec 3
TextBoxes et un CommandButton.
J'ai mis "Ici" comme propriété Tag de TextBox2 et "Oublie moi" comme
propriété Tag du CommandButton, parce que CommandButton n'a pas de
propriété value et que la procédure génère un message d'horreur quand
elle passe sur le bouton de commande. (En fait, dans ce cas, cela peut
être n'importe quoi d'autre que de laisser vide ou de mettre ici.)
Ensuite, j'ai mis cela dans le CommandButton_Click() et Bingo!
Private Sub CommandButton1_Click()
Dim ct As Object
For Each ct In Me.Controls
If ct.Tag = "Ici" Then
'mettre «Marcotte» dant un TextBox "taggé" «ici»
ct.Value = "Marcotte"
ElseIf ct.Tag = "" Then
'mettre "Clément" dans les autres TextBoxes
ct.Value = "Clément"
Else
'Pour le CommandButton, mettre autre chose dans la
'propriété Tag pour éviter un message d'horreur.
'ct.value n'étant pas reconnu pour un bouton de commande
End If
Next
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Clément Marcotte
Si j'étions allé voir sur Google avant, j'aurions vu que ce n'est pas une découverte estradinaire.
"Clément Marcotte" a écrit dans le message de news:
Bonjour,
En lisant un livre sur la programmation en VB6, je suis tombé sur un passage parlant de la propriété Tag des contrôles ActiveX. Cette propriété permet d'appliquer un traitement différent à un contrôle ActiveX, notamment dans une boucle. N'écoutant que ma curiosité, je suis allé voir si c'était disponible dans VBA. Je sais maintenant qu'elle existe au moins pour le TextBox et le CommandButton d'Excel et
de Word 2002, et je ne suis pas allé voir plus loin.
Pour essayer cela, je me suis donc bâti un UserForm dans Excel, avec 3
TextBoxes et un CommandButton. J'ai mis "Ici" comme propriété Tag de TextBox2 et "Oublie moi" comme propriété Tag du CommandButton, parce que CommandButton n'a pas de propriété value et que la procédure génère un message d'horreur quand
elle passe sur le bouton de commande. (En fait, dans ce cas, cela peut
être n'importe quoi d'autre que de laisser vide ou de mettre ici.)
Ensuite, j'ai mis cela dans le CommandButton_Click() et Bingo!
Private Sub CommandButton1_Click() Dim ct As Object For Each ct In Me.Controls If ct.Tag = "Ici" Then 'mettre «Marcotte» dant un TextBox "taggé" «ici» ct.Value = "Marcotte" ElseIf ct.Tag = "" Then 'mettre "Clément" dans les autres TextBoxes ct.Value = "Clément" Else 'Pour le CommandButton, mettre autre chose dans la 'propriété Tag pour éviter un message d'horreur. 'ct.value n'étant pas reconnu pour un bouton de commande End If Next End Sub
Si j'étions allé voir sur Google avant, j'aurions vu que ce n'est pas
une découverte estradinaire.
"Clément Marcotte" <clement.marcotte@sympatico.ca> a écrit dans le
message de news:e229KvOnEHA.1444@TK2MSFTNGP10.phx.gbl...
Bonjour,
En lisant un livre sur la programmation en VB6, je suis tombé sur un
passage parlant de la propriété Tag des contrôles ActiveX. Cette
propriété permet d'appliquer un traitement différent à un contrôle
ActiveX, notamment dans une boucle. N'écoutant que ma curiosité, je
suis allé voir si c'était disponible dans VBA. Je sais maintenant
qu'elle existe au moins pour le TextBox et le CommandButton d'Excel
et
de Word 2002, et je ne suis pas allé voir plus loin.
Pour essayer cela, je me suis donc bâti un UserForm dans Excel, avec
3
TextBoxes et un CommandButton.
J'ai mis "Ici" comme propriété Tag de TextBox2 et "Oublie moi" comme
propriété Tag du CommandButton, parce que CommandButton n'a pas de
propriété value et que la procédure génère un message d'horreur
quand
elle passe sur le bouton de commande. (En fait, dans ce cas, cela
peut
être n'importe quoi d'autre que de laisser vide ou de mettre ici.)
Ensuite, j'ai mis cela dans le CommandButton_Click() et Bingo!
Private Sub CommandButton1_Click()
Dim ct As Object
For Each ct In Me.Controls
If ct.Tag = "Ici" Then
'mettre «Marcotte» dant un TextBox "taggé" «ici»
ct.Value = "Marcotte"
ElseIf ct.Tag = "" Then
'mettre "Clément" dans les autres TextBoxes
ct.Value = "Clément"
Else
'Pour le CommandButton, mettre autre chose dans la
'propriété Tag pour éviter un message d'horreur.
'ct.value n'étant pas reconnu pour un bouton de commande
End If
Next
End Sub
Si j'étions allé voir sur Google avant, j'aurions vu que ce n'est pas une découverte estradinaire.
"Clément Marcotte" a écrit dans le message de news:
Bonjour,
En lisant un livre sur la programmation en VB6, je suis tombé sur un passage parlant de la propriété Tag des contrôles ActiveX. Cette propriété permet d'appliquer un traitement différent à un contrôle ActiveX, notamment dans une boucle. N'écoutant que ma curiosité, je suis allé voir si c'était disponible dans VBA. Je sais maintenant qu'elle existe au moins pour le TextBox et le CommandButton d'Excel et
de Word 2002, et je ne suis pas allé voir plus loin.
Pour essayer cela, je me suis donc bâti un UserForm dans Excel, avec 3
TextBoxes et un CommandButton. J'ai mis "Ici" comme propriété Tag de TextBox2 et "Oublie moi" comme propriété Tag du CommandButton, parce que CommandButton n'a pas de propriété value et que la procédure génère un message d'horreur quand
elle passe sur le bouton de commande. (En fait, dans ce cas, cela peut
être n'importe quoi d'autre que de laisser vide ou de mettre ici.)
Ensuite, j'ai mis cela dans le CommandButton_Click() et Bingo!
Private Sub CommandButton1_Click() Dim ct As Object For Each ct In Me.Controls If ct.Tag = "Ici" Then 'mettre «Marcotte» dant un TextBox "taggé" «ici» ct.Value = "Marcotte" ElseIf ct.Tag = "" Then 'mettre "Clément" dans les autres TextBoxes ct.Value = "Clément" Else 'Pour le CommandButton, mettre autre chose dans la 'propriété Tag pour éviter un message d'horreur. 'ct.value n'étant pas reconnu pour un bouton de commande End If Next End Sub