OVH Cloud OVH Cloud

UserForm et Textbox réinitialisés

5 réponses
Avatar
Isabelle
Bonjour
Voilà, en fait, j'ai un userform contenant des textbox, les données qui y sont saisies sont rapratriées dans un tableau excel. L'userform est appelé grâce à un bouton sur la feuille excel
Lorsque j'active ce bouton, je saisie mes données des les textbox, tout va bien
Quand je veux rentrer d'autres données, Je reclique sur ce bouton, mais les données que je viens de saisir sont encore visibles dans le userform, ce que je ne veux pas!
je m'étais déjà tournée vers vous pour ce pb mais ça marchait pas...ou je l'ai mal exploité..
On m'avait parlé du code suivant

Private Sub UserForm_Initialize(
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then ctr = ""
Next ct
End Sub

Mais aussi de la fonction "Unload" a utiliser au lieu de Hid
Pourriez-vous m'éclaircir sur ces informations, ou me donner une autre solution
Merci
Isabelle

5 réponses

Avatar
Nicolas B.
Salut Isabelle,

Private Sub UserForm_Initialize()


Avec l'événement UserForm_Activate, ça devrait aller mieux.


A+
--
Nicolas B.


Bonjour,
Voilà, en fait, j'ai un userform contenant des textbox, les données
qui y sont saisies sont rapratriées dans un tableau excel. L'userform
est appelé grâce à un bouton sur la feuille excel. Lorsque j'active
ce bouton, je saisie mes données des les textbox, tout va bien.
Quand je veux rentrer d'autres données, Je reclique sur ce bouton,
mais les données que je viens de saisir sont encore visibles dans le
userform, ce que je ne veux pas!!
je m'étais déjà tournée vers vous pour ce pb mais ça marchait
pas...ou je l'ai mal exploité...
On m'avait parlé du code suivant:

Private Sub UserForm_Initialize()
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then ctr = ""
Next ctr
End Sub

Mais aussi de la fonction "Unload" a utiliser au lieu de Hide
Pourriez-vous m'éclaircir sur ces informations, ou me donner une
autre solution.
Merci!
Isabelle


Avatar
Rai
"Isabelle" a écrit dans le message de news:
Bonjour,
Voilà, en fait, j'ai un userform contenant des textbox, les données qui y sont saisies sont rapratriées dans un tableau excel. L'userform est appelé grâce à un bouton sur la feuille excel.
Lorsque j'active ce bouton, je saisie mes données des les textbox, tout va bien.
Quand je veux rentrer d'autres données, Je reclique sur ce bouton, mais les données que je viens de saisir sont encore visibles dans le userform, ce que je ne veux pas!!
je m'étais déjà tournée vers vous pour ce pb mais ça marchait pas...ou je l'ai mal exploité...
On m'avait parlé du code suivant:

Private Sub UserForm_Initialize()
For Each ctr In Me.Controls
If TypeOf ctr Is MSForms.TextBox Then ctr = ""
Next ctr
End Sub

Mais aussi de la fonction "Unload" a utiliser au lieu de Hide
Pourriez-vous m'éclaircir sur ces informations, ou me donner une autre solution.
Merci!
Isabelle


Bonjour Isabelle,

La différence entre "hide" et "unload" est assez simple.
Pour afficher un userform, tu utilises la méthode "show".
En réalité "show" est une tolérance de VBA (un raccourci situ préfères).
En fait tu devrais écrire :
load userform 'charge le formulaire en mémoire et l'initialise
userform.show 'montre le formulaire

Du coup la différence entre "hide" et "show" devient plus claire
la méthode "hide" cache (traduction littérale) le formulaire, sans y toucher, donc lors du prochain "show" elle est réaffichée en gardant les paramètres précédents.
la fonction "unload" le décharge de la mémoire et libère celle-ci, donc lors du prochain appel de la userform, celle-ci est totalement réinitialisée.

Pourquoi utiliser "hide" ?
- méthode rapide lors du prochain "show" (puisque "load" devient inutile)
- garde les valeurs des textbox et des autres contrôles

Pourquoi utiliser "unload"
- libère la mémoire
- réinitialise la userform au prochain appel (puisque VBA doit faire un load avant le show)

Est-ce plus clair ?


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...

Avatar
Isabelle
Salut Rai
j'ai essayé unload; mai apparement encore une fois je l'ai mal utilisé car ça marche pas.
J'ai fait userfom.unload au lieu de userform.hide......Comment faut-il l'utiliser

Merci

----- Rai a écrit : ----


"Isabelle" a écrit dans le message de news:
Bonjour
Voilà, en fait, j'ai un userform contenant des textbox, les données qui y sont saisies sont rapratriées dans un tableau excel. L'userform est appelé grâce à un bouton sur la feuille excel
Lorsque j'active ce bouton, je saisie mes données des les textbox, tout va bien
Quand je veux rentrer d'autres données, Je reclique sur ce bouton, mais les données que je viens de saisir sont encore visibles dans le userform, ce que je ne veux pas!
je m'étais déjà tournée vers vous pour ce pb mais ça marchait pas...ou je l'ai mal exploité..
On m'avait parlé du code suivant
Private Sub UserForm_Initialize(
For Each ctr In Me.Controls

If TypeOf ctr Is MSForms.TextBox Then ctr = ""
Next ct
End Sub
Mais aussi de la fonction "Unload" a utiliser au lieu de Hid
Pourriez-vous m'éclaircir sur ces informations, ou me donner une autre solution

Merci
Isabell


Bonjour Isabelle

La différence entre "hide" et "unload" est assez simple
Pour afficher un userform, tu utilises la méthode "show"
En réalité "show" est une tolérance de VBA (un raccourci situ préfères)
En fait tu devrais écrire
load userform 'charge le formulaire en mémoire et l'initialis
userform.show 'montre le formulair

Du coup la différence entre "hide" et "show" devient plus clair
la méthode "hide" cache (traduction littérale) le formulaire, sans y toucher, donc lors du prochain "show" elle est réaffichée en gardant les paramètres précédents
la fonction "unload" le décharge de la mémoire et libère celle-ci, donc lors du prochain appel de la userform, celle-ci est totalement réinitialisée

Pourquoi utiliser "hide"
- méthode rapide lors du prochain "show" (puisque "load" devient inutile
- garde les valeurs des textbox et des autres contrôle

Pourquoi utiliser "unload
- libère la mémoir
- réinitialise la userform au prochain appel (puisque VBA doit faire un load avant le show

Est-ce plus clair


--
Cordialement

Ra
Remplacer point par la ponctuation appropriée pour répondre..


Avatar
Nicolas B.
Salut,

La synthaxe n'est pas la même que pour show/hide :
Unload UserForm1


A+
--
Nicolas B.


Salut Rai,
j'ai essayé unload; mai apparement encore une fois je l'ai mal
utilisé car ça marche pas..
J'ai fait userfom.unload au lieu de userform.hide......Comment
faut-il l'utiliser?

Merci!

----- Rai a écrit : -----


"Isabelle" a écrit dans le
message de
news: >
Bonjour, > Voilà, en fait, j'ai un userform contenant des
textbox, les données qui y sont saisies sont rapratriées dans un
tableau excel. L'userform est appelé grâce à un bouton sur la
feuille excel. > Lorsque j'active ce bouton, je saisie mes
données des les textbox, tout va bien. > Quand je veux rentrer
d'autres données, Je reclique sur ce bouton, mais les données
que je viens de saisir sont encore visibles dans le userform, ce
que je ne veux pas!! > je m'étais déjà tournée vers vous pour ce
pb mais ça marchait pas...ou je l'ai mal exploité... > On
m'avait parlé du code suivant: >> Private Sub
UserForm_Initialize() > For Each ctr In Me.Controls > If TypeOf
ctr Is MSForms.TextBox Then ctr = "" > Next ctr > End Sub >>
Mais aussi de la fonction "Unload" a utiliser au lieu de Hide >
Pourriez-vous m'éclaircir sur ces informations, ou me donner une
autre solution. > Merci! > Isabelle

Bonjour Isabelle,

La différence entre "hide" et "unload" est assez simple.
Pour afficher un userform, tu utilises la méthode "show".
En réalité "show" est une tolérance de VBA (un raccourci situ
préfères). En fait tu devrais écrire :
load userform 'charge le formulaire en mémoire et
l'initialise userform.show 'montre le formulaire

Du coup la différence entre "hide" et "show" devient plus claire
la méthode "hide" cache (traduction littérale) le formulaire,
sans y toucher, donc lors du prochain "show" elle est réaffichée
en gardant les paramètres précédents. la fonction "unload" le
décharge de la mémoire et libère celle-ci, donc lors du prochain
appel de la userform, celle-ci est totalement réinitialisée.

Pourquoi utiliser "hide" ?
- méthode rapide lors du prochain "show" (puisque "load"
devient inutile)
- garde les valeurs des textbox et des autres contrôles

Pourquoi utiliser "unload"
- libère la mémoire
- réinitialise la userform au prochain appel (puisque VBA
doit faire un load avant le show)

Est-ce plus clair ?


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...


Avatar
Rai
"Isabelle" a écrit dans le message de news:
Salut Rai,
j'ai essayé unload; mai apparement encore une fois je l'ai mal utilisé car ça marche pas..
J'ai fait userfom.unload au lieu de userform.hide......Comment faut-il l'utiliser?

Merci!

Effectivement Isabelle,


Tant ma prose était claire au niveau du load
load userform 'charge le formulaire en mémoire et l'initialise
userform.show 'montre le formulaire


Autant, je n'ai pas précisé les choses pour le unload.

Comme te l'a indiqué Nicolas, unload n'est ni une propriété ni une méthode de l'objet userform.
on l'utilise comme suit :
unload userform

A bientôt


--
Cordialement,

Rai
Remplacer point par la ponctuation appropriée pour répondre...