sauver de l'information d'une userform

clefde12

XLDnaute Nouveau
Bonjour à tous.
Existe-t-il une façon de sauver de l'information d'une userform, de manière à ce que cette information soit à nouveau disponible lors de la réouverture du classeur. Ou du moins, existe-t-il une ruse permettant de le faire.
ATTENTION : la consigne est de ne rien sauvegarder sur une feuille. Je souhaiterais ne rien écrire dans une case de feuille et trouver un moyen n'utilisant que les userforms visibles ou non(peu importe), et les macros.

Cela revient je crois en gros à créer de l'information dynamiquement dans une UserForm.

Cette question pour résoudre le pb suivant :
- Une UserForm1 s'affiche. Je saisis une référence dans une lisbox (exple : 123456)
- Une UserForm2 s'affiche. Cette UserForm2 contient une liste dans une ComboBox à laquelle est venue s'ajouter la référence saisie dans UserForm1.
-Je ferme puis réouvre Excel. La liste de la UserForm2 contient toujours 123456.
d'avance merci si quelqu'un a une solution...
 

Essem

XLDnaute Junior
Re : sauver de l'information d'une userform

Bonjour ClefDe12 et le forum,

Comme les champs d'un Userform sont des variables, elles résident dans le presse-papiers; la seule manière que je connaisse est de copier les données dans des cellules d'une feuille.

Par contre cette feuille peut-être cachée, pas masquée mais cachée et non visible dans le menu afficher; donc comme invisible à tous...

Revenir sur le fil si tu as besoin de plus d'infos.

Essem
 

Essem

XLDnaute Junior
Re : sauver de l'information d'une userform

Rebonjour ClefDe12,

J'ai recherché la commande, voir le fichier joint:

La "feuil3" se cache à l'ouverture et si tu regardes dans Format / Feuille il n'y a rien à afficher, tu dois rappeler la feuille à l'aide d'une macro.

Je crois encore que c'est le seul moyen.

Laisse savoir si tu trouves autre chose.

Essem
 

Pièces jointes

  • Hidden1.xls
    19 KB · Affichages: 51

clefde12

XLDnaute Nouveau
Re : sauver de l'information d'une userform

Bonjour Essem et merci.
Néanmoins, comme je le précisais dans la question, je cherche une méthode évitant de stocker l'information sur la feuille. Même si celle-ci est masquée.
ça, je savais le faire et je voudrais faire autrement : modifier dynamiquement une Userform par exemple.
Bien cordialement.
quelqu'un a-t-il une solution ?
 

clefde12

XLDnaute Nouveau
Re : sauver de l'information d'une userform

Bonjour à tous.
Je me permets de faire remonter ce sujet parce qu'il n'a pas été résolu.
Je ne le trouve pas non plus sur les autres sujets.
Si quelqu'un pouvait m'aider à trouver une piste?
Ou bien le clore en disant catégoriquement que c'est une chose impossible que de réaliser ce que je demande....
 

Hervé

XLDnaute Barbatruc
Re : sauver de l'information d'une userform

bonjour

il va bien falloir à un instant T sauvegarder l'information, sinon tu perdra tout lors de la fermeture du fichier.

si tu ne veux rien stocker sur les feuilles, tu peux t'aider d'un fichiet txt.

mais bon, la méthode de la feuille cachée est quand meme bien la plus simple.

salut
 

Ashaar

XLDnaute Junior
Re : sauver de l'information d'une userform

Coucou tous,

Il y a une possibilité pour faire cela sans passer par une feuille tampon :

Passer par une procédure tampon.
On enregistre la valeur d'une TextBox directement dans une proc puis au lancement du UserForm, on lit la valeur inscrite et on l'affiche.

C'est tortueux hein ?

Bon, essayons.

1) on crée un Userform : Userform1
2) on crée un TextBox : TextBox1
3) on crée un CommandButton : CommandButton1

4) on crée une proc destinée à recevoir l'info :

Private Sub UserForm_Initialize()
TextBox1.Value = "Chers amis, bonjour"
End Sub

5) on crée la proc qui va faire le boulot :

Sub ModifMacro(Classeur As Workbook, NomMacro$, Module$, Ligne&, Modif$)
Dim LiDeb&

With Classeur.VBProject.VBComponents(Module).CodeModule
LiDeb = .ProcBodyLine(NomMacro, 0)
.DeleteLines LiDeb + Ligne, 1
.InsertLines LiDeb + Ligne, Modif
End With

End Sub

5) on crée une proc pour le CommandButton :

Private Sub CommandButton1_Click()
Dim Wbk As Workbook, NomProc$, NomModule$, LiModif&, TxtModif$

Set Wbk = ThisWorkbook
NomProc = "UserForm_Initialize"
NomModule = "Userform1"
LiModif = 1
TxtModif = "Textbox1.value = " & """" & TextBox1 & """"

ModifMacro Wbk, NomProc, NomModule, LiModif, TxtModif


Unload UserForm1

End Sub



et hop, lorsque l'on clique sur le bouton, la valeur du textbox va s'insérer dans la macro UserForm_Initialize (ligne 1).

Et quand on affiche le userform, la macro restitue l'info.

Ouf.
 

clefde12

XLDnaute Nouveau
Re : sauver de l'information d'une userform

Merci à tous et merci à toi surtout Ashaar.
Je pense que ta solution correspond à mes attentes.
Je vais aller testet cela tout de suite.
Je reviendrai bien-sûr donner le résultat du test.
Je peux déjà dire que c'est bien brillant tout ça.
 

clefde12

XLDnaute Nouveau
Re : sauver de l'information d'une userform

ça y est, merci bien Ashaar !
Parfait : Clair, synthétique, et efficace.
ça marche et répond exactement à la question sans être aussi tortueux que tu le dis.
Je ne sais pas comment indiquer au niveau du sujet, qu'il est résolu, mais c'est bien le cas.
Chapeau bas !
 

Discussions similaires