garde en memoire un label

gege21

XLDnaute Occasionnel
bonjours a tous

je voudrai savoir comment faire pour garde un mémoire le contenu d'un label ( ici record_1) sans passe par une feuille excel
et lancer une macro si et le contenu change
 

Pièces jointes

  • beta1-1.xls
    68 KB · Affichages: 84
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : garde en memoire un label

Bonjour,
Il existe la propriété Tag de l'objet qui sera d'ailleur enregistrable en meme temps que le classeur si nécessaire,

Je l'utilisais à une époque pour stocker le mot de passe du formulaire :

UserForm2.Record_1.Tag = maxi
 

fhoest

XLDnaute Accro
Re : garde en memoire un label

Bonjour camarchepas,grand chamane,gege21.
Le problème avec TAG et que si on change la valeur via un inputbox par exemple et que l'on enregistre on garde l'ancienne valeur qui a été écrite en dur dans les propriétés.
Il existe un moyen de stocker ,mais c'est unique au pc utilisé car on l'enregistre dans la base de registre.
avec les instructions:
GetSetting, SaveSetting et DeleteSetting.
A+
 

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Bonjour,

exemple de code ci-dessous pour modifier la propriété "tag" d'un label posé sur un usf, code à placer dans un module standard :

Code:
Dim u As Object
Set u = ThisWorkbook.VBProject.VBComponents("UserForm1")
u.Designer.Controls("Label1").Tag = "xxx"

bonne journée
@+
 

fhoest

XLDnaute Accro
Re : garde en memoire un label

Re,
@ Pierrot (bonjour) ,toi qui a l'expérience lorsque tu utilise le code que tu viens de poster
?? es ce que lors de l'enregistrement on conserve la dernière valeur,
si oui c'est tout simplement géniale ,ca évite d'utilisé ce que j'ai mis juste avant sur la base de registre.

Merci.
Fred.


j'ai une erreur sur la ligne set u ... erreur éxécution 1004 la methode vbproject de l'object workbook à échoué.
l'accés au programme vb n'est pas fiable.
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,


j'ai une erreur sur la ligne set u ... erreur éxécution 1004 la methode vbproject de l'object workbook à échoué.
l'accés au programme vb n'est pas fiable.

sous 2003, il faut que "faire confiance au projet visual basic" soit coché, barre de menu excel => outils => macro => sécurité => onglet "éditeur approuvés"

es ce que lors de l'enregistrement on conserve la dernière valeur,

oui, la valeur prise en compte lors de l'exécution du code est mémorisée, il faut bien sur que le fichier soit enregistré par la suite....
 

YANN-56

XLDnaute Barbatruc
Re : garde en memoire un label

Bonjour gege21, aux éminents participants, et à ceux qui passeront pat ici,

Comme je ne suis pas très vif, je n'ai pas tout pigé...

Mais, à la lecture, j'ai été trop tenté de suggérer cette astuce que j'utilise parfois.

Je me sers des propriétés du classeur pour mettre en mémoires moult données.
Les Propriétés simples (Donc facilement accessibles) ne sont pas nombreuses,
mais en jouant avec des séparateurs; on peut en mettre pas mal.

Cela aussi facilite souvent le tri d'une liste de fichiers suivant leur contenu.

Ne rigolez pas!........... O.K. C'est pas "Pro"; mais j'aime bien.:)

Amicalement,

Yann
 

Pièces jointes

  • MEMOIRE.xls
    30.5 KB · Affichages: 79
  • MEMOIRE.xls
    30.5 KB · Affichages: 77
  • MEMOIRE.xls
    30.5 KB · Affichages: 73

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re, bonjour Yann:)

Le code donnée doit bien sûr être positionnée dans une procédure…
Un exemple ci-joint, une saisie dans la textbox modifie la propriété "tag" du label, un click sur cet objet t'affiche un msgbox avec le contenu de la propriété "tag"….

Code dans le module "thisworkbook" :

Code:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Label1").Tag = x
End Sub
Private Sub Workbook_Open()
x = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Label1").Tag
End Sub

Code dans un module standard :

Code:
Option Explicit
Public x As String

Code dans le module de l'usf :

Code:
Option Explicit
Private Sub TextBox1_Change()
x = TextBox1.Value
Label1.Tag = x
End Sub

Private Sub UserForm_Initialize()
TextBox1.Value = Label1.Tag
End Sub
Private Sub Label1_Click()
MsgBox Label1.Tag
End Sub
 

Pièces jointes

  • classeur2.zip
    13 KB · Affichages: 59
  • classeur2.zip
    13 KB · Affichages: 61
  • classeur2.zip
    13 KB · Affichages: 52

YANN-56

XLDnaute Barbatruc
Re : garde en memoire un label

Re Pierrot :),

Je viens de suivre ton idée avec:
ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("Label1").Tag = x

J'ignorais cette possibilité de manipulation. Avec "Faire Confiance au projet Visual Basic" Coché.

Cependant, j'ai constaté qu'il m'est demandé une confirmation d'enregistrement des modifications.
Puis, après avoir dis "Oui", j'ai un avertissement concernant la confidentialité..... Et c.
Je dois donc valider par "O.K."

Ce n'est pas pour défendre ma solution; mais de chercher à apprendre et comprendre.

Un utilisateur est par définition fainéant. N'as-tu pas peur de l'agacer avec ces boites successives?
(Mais peut-être es-tu passé outre le moyen de l'éviter)

Amicalement, et à te lire,

Yann
 

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,

@Yann:)
Cependant, j'ai constaté qu'il m'est demandé une confirmation d'enregistrement des modifications.
essaye peut être en déplacant le code situé dans l'événement "beforeclose" vers l'événement
"BeforeSave"...

Puis, après avoir dis "Oui", j'ai un avertissement concernant la confidentialité..... Et c.
Je dois donc valider par "O.K."

Sous 2003, une option de sécurité, barre de menu Excel => outils => option => onglet "sécurité" tu décoches "supprimer les infos personnelles des propriétés de ce fichier à l'enregistrement"....
bonne soirée à toi
 

YANN-56

XLDnaute Barbatruc
Re : garde en memoire un label

Merci Pierrot pour l'information,

Il n'est pas certain que je m'en serve, car je n'aime pas trop fouiller dans le moteur.
Je suis tellement maladroit, que je risquerais d'y oublier une clé.:)

En plus, comme ce que je bidouille n'est généralement pas fait pour ma seule utilisation:
Je suis prudent et craintif.

Il n'en demeure pas moins que j'ai bien fait de venir, j'ai encore appris quelque chose.

Merci beaucoup Pierrot, et au hasard d'un Fil,

................ Je laisse la place à gege............

Amicalement,

Yann
 

Pierrot93

XLDnaute Barbatruc
Re : garde en memoire un label

Re,
Il n'est pas certain que je m'en serve, car je n'aime pas trop fouiller dans le moteur.
Je suis tellement maladroit, que je risquerais d'y oublier une clé.
lol... :), t'inquiète pas, ce type de code ne risque pas plus qu'un autre de casser quelque chose dans ton Excel, moins risqué qu'une suppression de fichier ou que d'écrire dans la base de registre... sans parler de cerains API windows... qui mal manipulés peuvent entraîner des trucs bizarres.... enfin c'est juste mon avis..
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

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