XL 2010 Explication sur propriété .tag

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
J'ai retrouvé un vieil exemple de !!! 2015 , je pense que c'était Roland qui me l'avait fourni ; mais je ne pige pas le fait des box entrelacées dans l'usf qui en plus n'apparaissent pas ??? je n'ai pas vu de visible=false . Par contre je ne connais pas le .tag ?
Comme j'aime bien comprendre ce que j'utilise , quelqu'un pourrait-il me détailler un peu plus ce contrôle ( rôlr , utilisation , etc ) , rien de compréhensible sur le net ( surtout MS !!!)
Merci bien
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Hervé,

L'utilité exacte de [Tag] je ne la connais pas. En revanche je l'utilise énormément dans les contrôles qui récupèrent des données d'un tableau ou qui renvoient leur valeur dans le tableau. je leur attribue la lettre de la colonne dans laquelle la valeur doit s'afficher. Après je boucle sur les contrôles avec, pour récupérer les données du tableau vers l'UserForm, u code du style :

VB:
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim LI As Integer 'déclare la variable LI (Ligne)

LI = ActiveCell.Row 'définit la ligne LI
For Each CTRL In Me.Controls 'boucle sur tous les contrôle de l'UserForm en cours
    If CTRL.Tag <> "" Then 'condition : si la propriété [Tag] du contrôle n'est pas vide
        CTRL.Value = Cells(LI, CTRL.Tag).Value 'récupère la valeur de la cellule ligne = LI colonne =propiété [Tag] du contrôle
    End If 'fin de la condition
Next CTRL 'prochaine contrôle de la boucle
à adapter pour des checkboxes ou optionbuttons...

Si je veux renvoyer les données de l'UserForm vers le tableau le même type de code :

Code:
Dim CTRL As Control 'déclare la variable CTRL (ConTRôLe)
Dim LI As Integer 'déclare la variable LI (Ligne)

LI = Cells(Application.Rows.Count, "A").End(xlUp).Row + 1 'définit la ligne LI
For Each CTRL In Me.Controls 'boucle sur tous les contrôle de l'UserForm en cours
    If CTRL.Tag <> "" Then 'condition : si la propriété [Tag] du contrôle n'est pas vide
        Cells(LI, CTRL.Tag).Value = CTRL.Value 'renvoie la valeur du contrôle vers la cellule ligne = LI colonne = propriété [Tag] du contrôle
    End If 'fin de la condition
Next CTRL 'prochaine contrôle de la boucle

En fait cette propriété te permet de stocker dans le contrôle une donnée qui te servira plus tard (la colonne, la ligne, une couleur, etc.)
 

eriiic

XLDnaute Barbatruc
Bonjour à tous,

.Tag est une propriété sans autre rôle que d'être mise à disposition.
Elle contient une chaine liée à l'objet que tu l'utilises comme tu veux, c'est toi qui décide.
Taguer=marquer

Ici il s'en sert pour repérer le bouton jour en cours de traitement (1 à 42)
eric
 
Dernière édition:

Statistiques des forums

Discussions
311 720
Messages
2 081 896
Membres
101 833
dernier inscrit
sandra25