OVH Cloud OVH Cloud

userform: cacher et décharger

4 réponses
Avatar
jeclephi
Bonjour,

J'utilise deux userforms pour exécuter une opération, par exemple de
suppression d'une ligne de tableau.
le premier me permet de faire un choix qui ouvrira un second userform(qui
sera différent suivant le choix que j'aurais fait).
Le second me permet de faire un choix qui lancera terminera l'opération de
suppression.
Je voudrais faire disparaître le premier userform dés que j'ai lancé le
second et faire disparaître le second dés que mon choix a été
mémorisé.
L'opération demandée se déroule bien jusqu'à son terme mais les deux
userform sont toujours visibles à l'écran. Losrque l'opération est terminée
je vois à l'écran que le premier userform a été réactivé(focus) et le fait
de le fermer en l'annulant ferme aussi le second userform.
Or j'ai insérer dans mon code des commandes : userform1.hide et
userform2.hide ainsi que les lignes unload userform1 et unload userform2
bien avant la fin de mon code.
J'ai l'impression que je n'utilise pas bien la fonction DoEvents que j'ai
essayer de mettre aprés les "user...hide".
En résumé la macro fait bien le travail mais les userforms font de la
résistance
Merci à qui me fournira la solution.
Jeclephi

4 réponses

Avatar
RV
Bonjour Jeclephi,
Pour décharger un UserForm: Unload Me si ta procédure est sur le UserForm ou
bien Unload FrmChoix(nom du userform) si tu es sur un module commun.
Cordialement
RV


"jeclephi" a écrit dans le message de news:

Bonjour,

J'utilise deux userforms pour exécuter une opération, par exemple de
suppression d'une ligne de tableau.
le premier me permet de faire un choix qui ouvrira un second userform(qui
sera différent suivant le choix que j'aurais fait).
Le second me permet de faire un choix qui lancera terminera l'opération de
suppression.
Je voudrais faire disparaître le premier userform dés que j'ai lancé le
second et faire disparaître le second dés que mon choix a été
mémorisé.
L'opération demandée se déroule bien jusqu'à son terme mais les deux
userform sont toujours visibles à l'écran. Losrque l'opération est
terminée je vois à l'écran que le premier userform a été réactivé(focus)
et le fait de le fermer en l'annulant ferme aussi le second userform.
Or j'ai insérer dans mon code des commandes : userform1.hide et
userform2.hide ainsi que les lignes unload userform1 et unload userform2
bien avant la fin de mon code.
J'ai l'impression que je n'utilise pas bien la fonction DoEvents que j'ai
essayer de mettre aprés les "user...hide".
En résumé la macro fait bien le travail mais les userforms font de la
résistance
Merci à qui me fournira la solution.
Jeclephi



Avatar
jeclephi
Bonjour
merci pour ta réponse mais quand j'ai voulu l'appliquer je me suis rendu
compte qu'il y avait un bug ailleurs et que ma macro se disperse(où? là est
la question). J'ai fait de multiple essais et je crois que je n'ai pas
annuler un de ces essais.
Heureux celui qui est ordonné dans sa tête et sur sa feuille.
Tes solutions me seront de toute façon utiles(sutrtout la deuxième que je
n'ai pas encore testée)
Jcp

"RV" a écrit dans le message de news:
ew%
Bonjour Jeclephi,
Pour décharger un UserForm: Unload Me si ta procédure est sur le UserForm
ou bien Unload FrmChoix(nom du userform) si tu es sur un module commun.
Cordialement
RV


"jeclephi" a écrit dans le message de news:

Bonjour,

J'utilise deux userforms pour exécuter une opération, par exemple de
suppression d'une ligne de tableau.
le premier me permet de faire un choix qui ouvrira un second userform(qui
sera différent suivant le choix que j'aurais fait).
Le second me permet de faire un choix qui lancera terminera l'opération
de suppression.
Je voudrais faire disparaître le premier userform dés que j'ai lancé le
second et faire disparaître le second dés que mon choix a été
mémorisé.
L'opération demandée se déroule bien jusqu'à son terme mais les deux
userform sont toujours visibles à l'écran. Losrque l'opération est
terminée je vois à l'écran que le premier userform a été réactivé(focus)
et le fait de le fermer en l'annulant ferme aussi le second userform.
Or j'ai insérer dans mon code des commandes : userform1.hide et
userform2.hide ainsi que les lignes unload userform1 et unload userform2
bien avant la fin de mon code.
J'ai l'impression que je n'utilise pas bien la fonction DoEvents que
j'ai essayer de mettre aprés les "user...hide".
En résumé la macro fait bien le travail mais les userforms font de la
résistance
Merci à qui me fournira la solution.
Jeclephi







Avatar
RV
JCP,
Tu peux aussi utiliser la propriété Me.Hide(ou FrmChoix.Hide ) pour cacher
le UserForm et conserver les données qui sont dessus. Ton bogue provient
peut-être de cela...
@+
RV


"jeclephi" a écrit dans le message de news:

Bonjour
merci pour ta réponse mais quand j'ai voulu l'appliquer je me suis rendu
compte qu'il y avait un bug ailleurs et que ma macro se disperse(où? là
est la question). J'ai fait de multiple essais et je crois que je n'ai pas
annuler un de ces essais.
Heureux celui qui est ordonné dans sa tête et sur sa feuille.
Tes solutions me seront de toute façon utiles(sutrtout la deuxième que je
n'ai pas encore testée)
Jcp

"RV" a écrit dans le message de news:
ew%
Bonjour Jeclephi,
Pour décharger un UserForm: Unload Me si ta procédure est sur le UserForm
ou bien Unload FrmChoix(nom du userform) si tu es sur un module commun.
Cordialement
RV


"jeclephi" a écrit dans le message de news:

Bonjour,

J'utilise deux userforms pour exécuter une opération, par exemple de
suppression d'une ligne de tableau.
le premier me permet de faire un choix qui ouvrira un second
userform(qui sera différent suivant le choix que j'aurais fait).
Le second me permet de faire un choix qui lancera terminera l'opération
de suppression.
Je voudrais faire disparaître le premier userform dés que j'ai lancé le
second et faire disparaître le second dés que mon choix a été
mémorisé.
L'opération demandée se déroule bien jusqu'à son terme mais les deux
userform sont toujours visibles à l'écran. Losrque l'opération est
terminée je vois à l'écran que le premier userform a été
réactivé(focus) et le fait de le fermer en l'annulant ferme aussi le
second userform.
Or j'ai insérer dans mon code des commandes : userform1.hide et
userform2.hide ainsi que les lignes unload userform1 et unload
userform2 bien avant la fin de mon code.
J'ai l'impression que je n'utilise pas bien la fonction DoEvents que
j'ai essayer de mettre aprés les "user...hide".
En résumé la macro fait bien le travail mais les userforms font de la
résistance
Merci à qui me fournira la solution.
Jeclephi











Avatar
jeclephi
youpi ça marche et tu as ma reconnaissance sans limite car tu as sauvéla
sérénité de ma fin de semaine et la paix dans le ménage
jcp

"RV" a écrit dans le message de news:

JCP,
Tu peux aussi utiliser la propriété Me.Hide(ou FrmChoix.Hide ) pour cacher
le UserForm et conserver les données qui sont dessus. Ton bogue provient
peut-être de cela...
@+
RV


"jeclephi" a écrit dans le message de news:

Bonjour
merci pour ta réponse mais quand j'ai voulu l'appliquer je me suis rendu
compte qu'il y avait un bug ailleurs et que ma macro se disperse(où? là
est la question). J'ai fait de multiple essais et je crois que je n'ai
pas annuler un de ces essais.
Heureux celui qui est ordonné dans sa tête et sur sa feuille.
Tes solutions me seront de toute façon utiles(sutrtout la deuxième que je
n'ai pas encore testée)
Jcp

"RV" a écrit dans le message de news:
ew%
Bonjour Jeclephi,
Pour décharger un UserForm: Unload Me si ta procédure est sur le
UserForm ou bien Unload FrmChoix(nom du userform) si tu es sur un module
commun.
Cordialement
RV


"jeclephi" a écrit dans le message de news:

Bonjour,

J'utilise deux userforms pour exécuter une opération, par exemple de
suppression d'une ligne de tableau.
le premier me permet de faire un choix qui ouvrira un second
userform(qui sera différent suivant le choix que j'aurais fait).
Le second me permet de faire un choix qui lancera terminera l'opération
de suppression.
Je voudrais faire disparaître le premier userform dés que j'ai lancé le
second et faire disparaître le second dés que mon choix a été
mémorisé.
L'opération demandée se déroule bien jusqu'à son terme mais les deux
userform sont toujours visibles à l'écran. Losrque l'opération est
terminée je vois à l'écran que le premier userform a été
réactivé(focus) et le fait de le fermer en l'annulant ferme aussi le
second userform.
Or j'ai insérer dans mon code des commandes : userform1.hide et
userform2.hide ainsi que les lignes unload userform1 et unload
userform2 bien avant la fin de mon code.
J'ai l'impression que je n'utilise pas bien la fonction DoEvents que
j'ai essayer de mettre aprés les "user...hide".
En résumé la macro fait bien le travail mais les userforms font de la
résistance
Merci à qui me fournira la solution.
Jeclephi