Userform comment garder données à la fermeture du classeur dans les textbox?

tarvel

XLDnaute Occasionnel
Bonjour,
Comment faire pour garder les dernière données rentrées dans les textbox d'un userform lorsque je ferme le classeur???
J'ai bien essayé dans le sub Form :
ThisWorkbook.Save
Mais ça ne fonctionne pas!
Merci pour votre aide
 

camarchepas

XLDnaute Barbatruc
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

Bonjour ,

Et non ca ne fonctionne pas comme cela pour un userform.

Il faut sauvegarder soit dans un onglet dédié ou dans un fichier texte ou csv . avant fermeture .

Puis récupérer avant l'affichage de l'userform.

Sans fichier difficile de te préciser davantage .
 

cathodique

XLDnaute Barbatruc
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

Bonjour,

au lieu de faire "unload Me" qui décharge ce qu'il y a en mémoire, tu fais "UserForm.Hide". Mais si tu fermes ton fichier, cette procédure n'est pas valable.
 

tarvel

XLDnaute Occasionnel
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

Merci pour vos réponses...En fait je vais utiliser les valeurs enregistées dans un onglet
Et j'ai cherché en complément dans d'autres forums avec :
UserForm_Initialize et UserForm_QueryClose placés dans le sub quand je valide avec OK CommandButton.
Code:
Private Sub UserForm_Initialize()
With Sheets("Valeurs")
TextVille = .Range("A1")
TextDate = .Range("A2") etc...
End With

Code:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
With Sheets("Valeurs")
.Range("A1") = TextVille
.Range("A2") = TexDate etc...
End With
Ca permet aussi de garder les dernières valeurs enregistrées!!!
 

PMO2

XLDnaute Accro
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

Bonjour,

Une autre approche en utilisant la propriété Tag de chaque TextBox.

1) Copiez le code suivant dans la fenêtre de code du UserForm
Code:
Private Sub UserForm_Initialize()
Dim CT As Control
Dim i&
'---
For Each CT In Me.Controls
  If TypeName(CT) = "TextBox" Then
    CT.Value = CT.Tag
  End If
Next CT
End Sub

Private Sub UserForm_Terminate()
Dim CT As Control
Dim i&
'---
UsfName = Me.Name
For Each CT In Me.Controls
  If TypeName(CT) = "TextBox" Then
    i& = i& + 1
    ReDim Preserve CollectionTextBox(1 To i&)
    CollectionTextBox(i&).Name = CT.Name
    CollectionTextBox(i&).Value = CT.Value
  End If
Next CT
'---
Application.OnTime Now + TimeValue("00:00:00"), "SetValueInTag"
End Sub

2) Copiez le code suivant dans un module Standard
Code:
Type structTextBox
  Name As String
  Value As String
End Type

Public CollectionTextBox() As structTextBox
Public UsfName As String

Sub SetValueInTag(Optional dummy As Byte)
Dim i&
Dim USFDesign As Object
'---
Set USFDesign = ThisWorkbook.VBProject.VBComponents(UsfName).Designer
For i& = 1 To UBound(CollectionTextBox)
  USFDesign.Controls(CollectionTextBox(i&).Name).Tag = CollectionTextBox(i&).Value
Next i&
Erase CollectionTextBox
End Sub

A la fermeture du UserForm, les Tags des TextBoxes sont renseignés par leur valeur.
A la relance du UserForm, les données remontent.
Il faudra sauvegarder le classeur quand Excel sera quitté pour conserver les données.
 

Pièces jointes

  • Conserver données des TextBoxes d'un UserForm dans la propriété Tag.xlsm
    27.1 KB · Affichages: 84

cathodique

XLDnaute Barbatruc
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

Bonjour PMO2,

Désolé de m'incruster, j'ai téléchargé ton fichier mais l'userform ne s'affiche pas quand on clique sur le bouton. le code est sur commadbutton1 alors que c'est commandbutton2. Remarque même avec un nouveau bouton ça ne fonctionne pas, par contre on peut l'afficher en exécutant le code de l'userform à partir de vbe. je n'ai pas compris pourquoi?
 

PMO2

XLDnaute Accro
Re : Userform comment garder données à la fermeture du classeur dans les textbox?

J'ai omis de dire qu'il faut activer "Accès approuvé au modèle d'objet du projet VBA".
 

Pièces jointes

  • xxxxxxx.jpg
    xxxxxxx.jpg
    37.1 KB · Affichages: 95
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson