Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Utilisation de la propriété Tag

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

david84

XLDnaute Barbatruc
Bonjour,
je cherche à conserver une chaîne de caractère renseignée dans le traitement d'un contrôle de texte afin de pouvoir l'utiliser dans un autre code en faisant référence au Tag de ce TextBox.

Je pensais qu'il était possible d'utiliser la propriété Tag de ce TextBox pour conserver cette chaîne.

Si j'inscris une chaîne de caractère ("coucou") dans ce TextBox, et que je fais appel à la propriété Tag avant la fermeture de l'USF, pas de souci.
Par contre, dès que je ferme l'USF et que je veux ramener le texte dans une cellule, je bloque.

Ceci n'est qu'un exemple : je ne veux pas ramener cette propriété dans une cellule, mais savoir s'il y a possibilité de conserver cette chaîne de caractère pour l'utiliser dans une autre procédure.

Je pensais qu'il était possible de le faire en stockant cette chaîne dans le Tag d'un 1er USF, pour ensuite y faire appel dans un 2ème USF.

Est-ce que cela est possible en utilisant le Tag comme lieu de stockage d'une valeur, celle-ci restant accessible même après la fermeture du USF ?

Merci de vos réponses éventuelles.
A+
 

Pièces jointes

Re : Utilisation de la propriété Tag

Re
je n'avais pas pas rafraîchi :
@bruno :
Et pourquoi ne pas utiliser un fichier externe d'initialisation ".ini" comme beaucoup d'appli le font
pourquoi pas mais je pense que je peux m'en passer.

@Pierrot et Gérard : bravo à vous deux ! Vous avez trouvé ce que que cherchais (et pourtant j'avais cherché dans les propriétés du VBProject mais je n'avais pas trouvé) :
Code:
Set MonUsf = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("TextBox1")
MonUsf.Tag = "NomduTag"
A+
 
Re : Utilisation de la propriété Tag

bonjour tous une autre methode sans variable public

code user

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  SaveSetting "Mes parametres", "TextBox1", "Valeur TextBox1", TextBox1.Value
End Sub

dans un module standard

Code:
Sub es()
 MsgBox GetSetting("Mes parametres", "TextBox1", "Valeur TextBox1")
End Sub

conserve meme fermer & ouvrir

cela marche aussi avec tag

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  SaveSetting "Mes parametres", "TextBox1", "Valeur TextBox1", TextBox1.Tag
End Sub
 
Dernière édition:
Re : Utilisation de la propriété Tag

re tous 🙂🙂🙂🙂🙂 petite precision qui a son importance

la ligne est cree dans la bas de registre donc on peut tres bien l'appeler d'un autre classeur meme si le classeur de la creation est ferme

donc en partant de ce constat
il faut penser a detruire cette entrée dans la base de registre si plus utiliser

Code:
DeleteSetting "Mes parametres", "TextBox1"
 
Re : Utilisation de la propriété Tag

Re à tous

Ah, merci David. C'est le genre de discussion comme je les aime. Beaucoup de solutions pour un petit problème qui semble simple à priori et qui pourtant n'est pas si évident.

Bon Noël à tous 🙂.
 
Re : Utilisation de la propriété Tag

Re
@Michel
Ah, merci David...
ben de rien ! Merci à vous surtout.

@laetitia : pour la valeur cela fonctionne. Par contre pour le Tag, je n'obtiens rien...
pour le SetSetting, tu indiques
Code:
SaveSetting "Mes parametres", "TextBox1", "Valeur TextBox1", TextBox1.Tag
mais quel code utilises-tu concernant le GetSetting ?
A+
 
Re : Utilisation de la propriété Tag

Re,

Merci beaucoup Laetitia 🙂 je ne connaissais pas encore SaveSetting.

Cette instruction stocke dans la base de registres Windows.

Voyez le fichier joint. Le stockage est supprimé à la fermeture du fichier

A+
 

Pièces jointes

Re : Utilisation de la propriété Tag

re, tous 🙂🙂🙂🙂
on parle bien de la propriétee tag ??
un exemple je detruis a la fermeture idem que l'ami Job🙂
attention quand meme a l'utilisation de cette methode la base de registre il faut pas qu'elle deviennent un stockage inter ....elle restera toujours dans le pc si grand nombre... ralentissement a l'ouverture windows si grand nombre
donc la suppression est importante
je vais tester avec CCleaner voir si supprime entrée invalide dans la base de...

bon je viens de tester avec 2 utilitaires ne considére pas comme entrée invalide.... donc prudence

ps j'ai oubliée de vous souhaiter a tous un super reveillon
a + leti
 

Pièces jointes

Dernière édition:
Re : Utilisation de la propriété Tag

Bonjour à toutes et à tous,

Comme David a fait un lien vers ce fil que j'avais loupé, une autre possibilité est peut-être d'enregistrer des valeurs dans les propriétés du classeur Excel (CustomDocumentProperties)
Valeurs liées au classeur donc enregistrées avec lui

un truc du genre

Code:
Sub EcrireTag(NomTag As String, MonTexte As String)
    With ThisWorkbook.CustomDocumentProperties
        On Error GoTo Existe
        .Add Name:=NomTag, LinkToContent:=False, Type:=msoPropertyTypeString, Value:=MonTexte
        On Error GoTo 0
        Exit Sub
Existe:
        .Item(NomTag) = MonTexte
    End With
End Sub

Function LireTag(NomTag As String) As String
    LireTag = ThisWorkbook.CustomDocumentProperties(NomTag)
End Function


Sub test()

EcrireTag "MonTag", "test1"

End Sub

Sub test2()

MsgBox LireTag("MonTag")

End Sub

Edit : pour info, ça apparait dans les propriétés du classeur (dans Windows, clic droit sur le classeur - Propriétés, Onglet Personnaliser), donc il y a surement plus discret (parmi toutes les autres propositions) 😀
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
450
W
Réponses
7
Affichages
650
W
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…