userform mémoriser texte texbox

  • Initiateur de la discussion Initiateur de la discussion mariobross
  • 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 !

mariobross

XLDnaute Occasionnel
Bonjour le forum , j'ai un userform avec pour exemple 50 texbox , si il y a du texte dans les texbox, je voudrai que si je ferme le userform , à sa réouverture j'ai toujours le texte initial dans les texbox.

pour l'instant je régle le pb avec ce code (je passe par la feuille de calcul)

Private Sub UserForm1.texbox2_Change()
Feuil1.Range("a2").Value = TextBox2.Value
End Sub

Private Sub UserForm_Initialize()
UserForm1.texbox2.value =Feuil1.Range("a2").Value
end sub

mais y a t il plus simple ? merci pour vos aides.
 
Re : userform mémoriser texte texbox

Bonjour Mariobross

tu peux aussi utiliser la propriété "Tag", astuce donné vendredi par Jean Marie, essaye peut être avec les codes ci dessous :

Code:
Private Sub CommandButton1_Click()
Me.Hide
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Tag = TextBox1.Value
End Sub
Private Sub UserForm_Initialize()
TextBox1.Value = TextBox1.Tag
End Sub
attention l'USF ne doit pas être déchargé avec l'instruction "unload" mais masqué par "hide".

réutilise la methode "Show" pour réaficher ton USF.
Code:
UserForm1.Show

bonne fin d'après midi
@+
 
Re : userform mémoriser texte texbox

Bonjour mariobros

Salut Pierrot

une autre solution a base de tableau déclaré Public

presenté ici avec 3 textbox mais facilement transposable a 50 voire plus

de plus le tableau peut etre initialisé a l'ouverture du fichier

C'est le bouton de cde de l'usf qui enregistre les textbox
 

Pièces jointes

Re : userform mémoriser texte texbox

pierrot , pierre jean , le forum , bonsoir merci pour vos suggestions, pierre jean pour mon info peut tu m'expliquer le morceau de code : "Public tablo(3) As String " ;d'autre part ,ton code est simple et fonctionne, mais le hic c'est que je voudrai que l'on retrouve les données dans les textbox , meme si l'on ferme le classeur , est ce possible à partir de ton code. merci.
 
Re : userform mémoriser texte texbox

bonjour mariobross

Le code
Public tablo(3) As String
est la declaration d'un variable tableau de contenance 3 items de type String
ce tableau est public c'est a dire qu'il peut etre lu ou rempli par toutes les macros du projet

par ailleurs voici la version avec initialisation de ce tableau a l'ouverture du fichier et sa mise a jour avant la fermeture

Ceci necessite une plage dans une feuille ou loger les valeurs d'initialisation (ici la feuille 2 A1 a A3) la feuille en question pouvant etre masquée et eventuellement protégée
Je pense que tu n'auras pas de mal a adapter a 50 (ou plus) textbox
 

Pièces jointes

Re : userform mémoriser texte texbox

bonjour

Il est aussi possible d'utiliser:
SaveSetting qui sauvegarde les paramètres des objets en créant une entrée dans la base de registres.
et
GetSetting pour lire la valeur de la clé dans la base de registres.


Dans cet exemple, la procédure sauvegarde automatiquement le contenu des TextBox1 et 2 lors de la fermeture du UserForm.
Fermez votre classeur puis réouvrez le. Les dernières données des TextBox apparaissent.

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


Bonne journée
MichelXld
 
Re : userform mémoriser texte texbox

Bonsoir le forum,pierrot , pierrejean , michel ,merci pour vos solutions que j'ai testé ;donc on doit pouvoir adapter la boucle de pierrejean à la solution de michel et ainsi retrouver les données à la réouverture du userform sans avoir à passer par la feuille de calcul , je tacherai de trouver ce code .
Une question concernant la boucle de pierrejean : pour des raisons de lisibilité dans mon userform , j'ai nomé mes texbox de 100 à 120 , de 200 à 220 , de 300 à 320 ect...je pense que je vais les renomer pour que les chiffres se suivent , mais dans le cas contraire comment aurai-je du écrire la boucle ?
 
Re : userform mémoriser texte texbox

bonsoir mariobross

une solution:

Code:
for n=100 to etc
If n Mod 100 = 21 Then n = (Int(n / 100) + 1) * 100
.........
next n

edit: il y avait une erreur
21 remplace 20
 
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

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
520
Réponses
3
Affichages
922
Retour