Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
Userform comment garder données à la fermeture du classeur dans les textbox?
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 !
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
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.
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!!!
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
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?
- 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