Utilisation de la propriété Tag

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

  • Tag.xls
    44.5 KB · Affichages: 83
  • Tag.xls
    44.5 KB · Affichages: 84
  • Tag.xls
    44.5 KB · Affichages: 81

david84

XLDnaute Barbatruc
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+
 

laetitia90

XLDnaute Barbatruc
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:

laetitia90

XLDnaute Barbatruc
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"
 

MJ13

XLDnaute Barbatruc
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 :).
 

david84

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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

  • Tag(1).xls
    47 KB · Affichages: 37

laetitia90

XLDnaute Barbatruc
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

  • setting.xls
    43 KB · Affichages: 41
Dernière édition:

tototiti2008

XLDnaute Barbatruc
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) :D
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 229
Messages
2 086 425
Membres
103 206
dernier inscrit
diambote