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

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 :confused:.

Merci d'avance :).
 

Pièces jointes

  • UserformEvolutif.xls
    44 KB · Affichages: 88

vgendron

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

tototiti2008

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

MJ13

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

job75

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

  • UserformEvolutif(1).xls
    54 KB · Affichages: 186

job75

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

Bonjour le fil, le forum,

Un oubli...

Pour éviter une modification de la feuille de l'USF à chaque fermeture, il faut tester une 2ème variable Public flag.

Fichier (2).

A+
 

Pièces jointes

  • UserformEvolutif(2).xls
    54.5 KB · Affichages: 136

vgendron

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

david84

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

vgendron

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

job75

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

MJ13

XLDnaute Barbatruc
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 :rolleyes: de la discussion en lien :eek::eek:. 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 :eek:.
 

Si...

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

  • InMenory Userform.xls
    41.5 KB · Affichages: 79

job75

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

  • UserformEvolutif(3).xls
    55 KB · Affichages: 129

Magic_Doctor

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

  • Pb USF.xlsm
    141.9 KB · Affichages: 58

Magic_Doctor

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

  • Pb USF (2).xlsm
    141.9 KB · Affichages: 98

Discussions similaires

  • Question
Microsoft 365 Listbox
Réponses
3
Affichages
285

Statistiques des forums

Discussions
312 841
Messages
2 092 708
Membres
105 514
dernier inscrit
Hébera