userform mémoriser texte texbox

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.
 

Pierrot93

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

pierrejean

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

  • memusf.xls
    31.5 KB · Affichages: 103
  • memusf.xls
    31.5 KB · Affichages: 96
  • memusf.xls
    31.5 KB · Affichages: 97

mariobross

XLDnaute Occasionnel
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.
 

pierrejean

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

  • memusf.xls
    36.5 KB · Affichages: 61
  • memusf.xls
    36.5 KB · Affichages: 66
  • memusf.xls
    36.5 KB · Affichages: 63

MichelXld

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

mariobross

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

pierrejean

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

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 944
Membres
103 989
dernier inscrit
jralonso