Garder les données saisie dans un USF

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

D

Diabolik14

Guest
Bonjour à tous,

Après saisie de données dans le userform, lors que je le ré-ouvre, les données que j'ai saisie auparavant ne sont pas présente, et si jamais je saisie d'autres données, les premières saisie disparaissent.

Y-a t il possible que les données saisie dans un premier temps puissent apparaitre dans mon userform pour pouvoir les modifier ou alors continuer à saisir le userform.

Merci pour votre aide.

Aurélien
 

Pièces jointes

Re : Garder les données saisie dans un USF

Bonjour,

Dans Userform_Initialize, tu mets l'inverse de tout ce que tu as mis avant de fermer (dans les parties Lundi, Mardi...)

Ex., dans Lundi, tu as mis : Range("D8").value = ComboBox1.Value
dans Userform_Initialize tu mets : ComboBox1.Value = Range("D8").value et ainsi de suite...

Cordialement
 
Re : Garder les données saisie dans un USF

Bonjour à tous,

...regarde egalement hide au lieu de unload me ou fait une recherche sur VBComponent

J'avais interprété "ré-ouvre" comme "après une fermeture du fichier"...Si c'est seulement une fermeture d'USF c'est effectivement beaucoup plus simple...

Attention! avec hide, il faut être sûr qu'un autre code n'ait pas modifié les valeurs de la feuille...

Cordialement
 
Dernière édition:
Re : Garder les données saisie dans un USF

Bonjour à tous,

@ Diabolik14
Où êtes-vous ? Vous avez reçu des réponses et vous ne vous manifestez pas. Répondent-elles à votre demande ou pas ?

Sinon, j'ai une autre piste à proposer qui conserve les données d'une fermeture du UserForm à une prochaine ouverture même si le classeur a été entre-temps fermé.
J'attends de vos nouvelles pour la faire paraître.
 
Re : Garder les données saisie dans un USF

Bonjour à tous,
Désolé pour mon temps de réponse long mais j'ai fini tard aujourd'hui.
Je viens de modifier mon code avec la fonction HIDE et ducoup mes valeurs saisie reste bien lors de la ré-ouverture du USF.
Le seul hic, c'est lors de la fermeture de mon fichier excel et que je le ré-ouvre, les valeurs ne ré-apparaissent pas le USF. Avez vous une solution ?
Merci
 
Re : Garder les données saisie dans un USF

Bonjour,

La technique est d'utiliser un Name (Gestionnaire de noms) pour stocker les données saisies dans chaque contrôle du UserForm.
On conserve ainsi les données d'une session du classeur à une autre.
Restriction : Si vous avez une pléthore de contrôles sur votre UserForm avec des saisies très fournies en caractères, cela va bloquer le Name qui ne peut contenir que 1892 caractères.

J'ai ajouté un CommandButton3 ("Garder les données saisies") et apporté des modifications au code qui sont signalées par des '/////

Code:
'/////////// ajout pmo ///////////
Private Sub CommandButton3_Click()
Dim C As Control
Dim T()
Dim dummy
Dim cpt&
'---
On Error Resume Next
cpt& = 0
For Each C In Me.Controls
  dummy = C.Value
  If Err = 0 Then
    ReDim Preserve T(0 To cpt&)
    T(cpt&) = C.Value
  Else
    Err.Clear
  End If
  cpt& = cpt& + 1
Next C
ThisWorkbook.Names.Add Name:="___pmo", RefersTo:=T, Visible:=True 'mettre à False pour rendre le Name invisible
End Sub
'/////////////////////////////////

Private Sub UserForm_Activate()
    If Nouveau = True Then TextBox1 = WorksheetFunction.Max(Feuil1.Range("A2:A1000")) + 1

'/////////// ajout pmo ///////////
Dim N As Name
Dim cpt&
Dim var
Dim dummy
Dim C As Control
'---
On Error Resume Next
Set N = ThisWorkbook.Names("___pmo")
If Err <> 0 Then Exit Sub
var = N.RefersTo
var = Mid(var, 3, Len(var) - 3)
var = Split(var, ",")
'---
For Each C In Me.Controls
  dummy = C.Value
  If Err = 0 Then C.Value = Mid(var(cpt&), 2, Len(var(cpt&)) - 2)
  Err.Clear
  cpt& = cpt& + 1
Next C
End Sub
'/////////////////////////////////


Private Sub CommandButton1_Click()
'/////////// ajout pmo ///////////
On Error Resume Next
ThisWorkbook.Names("___pmo").Delete
On Error GoTo 0
'/////////////////////////////////
'suite de votre code

Fonctionnement :
Lancez le UserForm
1) Bouton "Garder les données saisies"
Conserve les données dans un Name. A la fermeture du classeur il faudra l'enregistrer pour mettre à jour le Name.
2) Bouton "VALIDER (retire la mémorisation des saisies)"
Détruit le Name et inscrit les données dans la feuille appropriée. A la fermeture du classeur il faudra l'enregistrer pour mettre à jour le Name.
 

Pièces jointes

Re : Garder les données saisie dans un USF

Bonsoir à tous,

Ce que je voulais dire au message #2, c'est que, ce que tu fais dans ton code lorsque tu fais passer les valeurs des Combobox dans les cellules peut être fait dans l'autre sens ( des cellules vers les Combobox) dans le sub Userform_Initialize ; lorsque l'USF s'ouvre, les Combobox présentent ainsi les valeurs que tu y avais mises précédemment (et que tu avais envoyées ensuite dans les cellules de la feuille avant fermeture de l'USF.

...à moins que je n'aie pas compris ce que tu veux en faire...

Cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
18
Affichages
526
Réponses
3
Affichages
797
Retour