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

VBA: Comment sauver un Userform avec le dernier texte entré?

  • Initiateur de la discussion Initiateur de la discussion MJ13
  • Date de début Date de début

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 !

MJ13

XLDnaute Barbatruc
Bonjour à tous

Est-il possible de sauvegarder un Userform avec le dernier texte entré dans un textbox? Cela me paraît complexe ou c'est plus simple qui'l n'y paraît 😕.

Merci d'avance 🙂.
 

Pièces jointes

Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonjour,

Je dirais qu'à la fermeture de ton userform, il faut sauvegarder la valeur du TxtBox dans une cellule de ton classeur
Cells(1,1)=TxBx_Nom.value (avec TxBx_Nom: le nom de ton textbox)

et à l'ouverture du userform, (dans l'initialize), récupérer cette valeur..
TxBx_Nom.value=cells(1,1)
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonjour Michel, 🙂

Pour conserver les valeurs saisies dans un Userform, il faut utiliser la méthode Hide qui le conserve en mémoire
La croix vide les valeurs parce qu'elle décharge le Userform de la mémoire (comme la fonction Unload).
Si maintenant tu veux retrouver les dernières valeurs même après avoir fermé le classeur puis rouvert, alors il faudra certainement stocker ces valeurs dans la feuille de calcul et recharger le userform à son ouverture à partir de ces cellules

Edit : Bonjour vgendron 🙂
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonjour Vgendron, Tototiti

Merci pour vos solutons 🙂.

Je me doutais un peu de cette façon de faire mais c'est quand même bête qu'il n'y ai pas plus simple 😱.
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonsoir Michel, vgendron, Marc,

Voyez le fichier joint.

En cliquant sur le bouton Enregistrer de l'USF la valeur de TextBox1 est mémorisée dans une variable Public.

Et à la fermeture de l'USF c'est la feuille de l'USF elle-même qui enregistre durablement cette valeur.

Nota :

- sur Excel 2010 il faut avoir coché l'option Accès approuvé au modèle d'objet du projet VBA (onglet Fichier-Options-Centre de gestion de la confidentialité-Paramètres...-Paramètres des macros)

- sur Excel 2003 il faut avoir coché l'option Faire confiance au projet Visual Basic (menu Outils-Macro-Sécurité-Editeurs approuvés).

Fichier joint.

A+
 

Pièces jointes

Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Salut job, salut le fil
Cette variable TEXTE public..ou est elle sauvegardée exactement?
j'ai fermé le classeur et à la réouverture, je vois que cette variable a toujours gardé la valeur précédente..ca doit donc bien etre écrit en "dur" quelque part?
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonjour tout le monde,
comme ta question rejoint celle que j'avais posée ici, je me permets de replacer ce lien.
Tu y trouveras différentes propositions, dont le mode opératoire déjà proposé par Gérard que je salue.
A+
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Salut David et merci.. ce fil me semble très interressant.. et très. chargé en informations..
je vais attendre d'être moins bousculé pour lire ca à tête reposée ;-)
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Salut vgendron, David,

La variable TEXTE (String) est déclarée Public dans Module1.

Elle est ainsi mémorisée tant que le fichier est ouvert

A l'ouverture du fichier elle a toujours la valeur "" (texte vide).

Ce qui reste toujours écrit "en dur" c'est ce qui a été mis (code en Feuil1) dans la propriété Value de TextBox1.

A+
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonjour à tous


Merci Job 🙂 pour ton code qui fonctionne bien 🙂.

C'était un peu le code que j'attendais. En plus comme l'a indiqué David 🙂, tu l'avais déjà écris et donné dans le post 13 🙄 de la discussion en lien 😱😱. Mais c'est vrai que j'en vois tellement passer que je n'ai pas encore une mémoire d'ordinateur.

En plus je pense que cela doit être la solution la plus simple. A un momrnt, je voulais même exporter le Userform pour le reprendre après fermeture du fichier 😱.
 
Re : VBA: Comment sauver un Userform avec le dernier texte entré?

salut

dans (presque) tous les cas présentés avec un UsF, je vois un bouton "Quitter" avec
Code:
Private Sub CommandButton1_Click()
  Unload Me
Ens Sub
Ce bouton n'a d’intérêt que Si... le bandeau est vidé de son contenu.
En effet, la croix non cachée est prévue pour !

Dans ce dernier cas on peut éviter le bouton et le "flag".
 

Pièces jointes

Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Re, salut SI...

C'est vrai, sur le fil indiqué par David j'utilisais Application.OnTime pour appeler la macro.

On n'a plus besoin alors de variables Public :

Code:
Sub Enregistrer()
Dim t$
t = UserForm1.TextBox1
Unload UserForm1
ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls("TextBox1") = t
End Sub
Fichier (3), à télécharger éventuellement pour tester.

A+
 

Pièces jointes

Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Bonsoir,

J'ai bien suivi les instructions de job, mais je me heurte à certains problèmes.
Après avoir ouvert le classeur, j'ouvre l'USF.
Les dernières valeurs entrées avant la dernière fermeture du classeur apparaissent bien dans l'USF (sauf celle du "Label4", cette astuce ne fonctionnerait-elle pas avec les Labels ?).
Si je clique directement sur le bouton "GO", pas de problème, ça marche.
Maintenant, tout juste après avoir ouvert l'USF après ouverture du classeur, si je veux modifier le nombre de décimales, les limites reviennent toutes à 0.
Comment résoudre ce problème, et comment faire en sorte que lorsque l'on ouvre l'USF dans le Label4 apparaisse le texte qui y figurait avant la dernière fermeture du classeur ?

Merci d'avance pour tout coup de main.

Bonne fin de soirée à tous.
 

Pièces jointes

Re : VBA: Comment sauver un Userform avec le dernier texte entré?

Re,

Je viens de régler un problème, celui du changement de décimales juste après la 1ère ouverture de l'USF.
Reste maintenent le problème du Label4 qui reste vide lors de la 1ère ouverture de l'USF.
 

Pièces jointes

- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…