Ne plus voir un UserForm

P

PF

Guest
Bonjour à tous, ma squestion risque de vous paraître facile voir stupide mais malheureusement c'est ainsi.

J'ai crée un Userform (appelons le 1), dedans l'utilisateur doit remplir différents champs, et si il ne le fait pas et qu'il appuit sur Ok, j'avais un beug, erreur 13.
Pour éviter le beug, j'ai crée un Userform (appelons le 2), indiquant à l'utilisateur qu'il doit remplir tous les champs. (2, ne doit pas se superposer en entier à 1) Et j'aimerai lorsque l'utilisateur à lu le message qu'il appuit sur Ok pour revenir à 1 et que 2 disparaisse.

J'ai bien essayé :
Userform2.hide

Mais il reste à l'écran.
Donc j'ai essayé Unload Me (pour le supprimer de la mémoire, mais même constat).

Que me conseillé vous ?

Merci d'avance
 
G

G'Claire

Guest
P-F, le forum

Pour obliger la saisie dans certains contrôls tu as ce code :

If (Le nom du control) = "" Then
MsgBox "Donnée incomplete!", vbCritical, "ATTENTION"
(Le nom du control).SetFocus
Exit Sub
End If

Cela t'évitera de passer par un UserForm

Salut, G'Claire
 
P

PF

Guest
Bonsoir Jacques

j'avais bien essayé unload Userform2, mais cela ne fonctionne pas, mon Userform passe en arrière plan mais reste visible, or moi je ne veux pas qu'il reste visible...
ca doit pouvoir se faire mais comment ???

Bonne soirée
 
G

G'Claire

Guest
Re,

Ne pourrais-tu pas mettre un exemple en Zip.

Et je reste presque dans la certitude qu'une MsgBox serai le mieux, le plus simpe et le moins lourd, mais peu être que d'aitre trouverons mieux sinon.


Salut G'Claire
 
L

LaurentTBT

Guest
Bonsoir à tous.

Bizarre ton histoire, PF.
Que ce soit avec unlod ou avec Hide, ton userform2 devrait bien disparaître de l'écran!
Il vaut sans doute mieux utiliser Unload si tu n'en as pas besoin (pour libérer de la mémoire)
Je me demande si tu n'as pas justement un problème de mémoire , où d'affichage.

Essaye de réafficher le userform1 après avoir supprimé le 2 en utilisant Repaint:
UserForm1.Repaint
Il s'agit seulement d'une réactualisation de l'affichage.

Mais je ne suis pas sûr du tout que cela marche.

Bonne soirée.
Laurent
 
L

LaurentTBT

Guest
Bonsoir Patrick.

Je ne veux rien dire de précis, je fais juste des suppositions.
Concrétement, ce qui t'arrive ne me semble pas normal.
Si tu utilises Hide où Unload, l'userForm2 doit bien disparaître de l'écran.

A moins, en y pensant maintenant:
- sur quelle version d'excel es-tu?
- où as-tu mis le code Unload UserForm2?

Peut-être y a-t-il une histoire d'userform modal là-dessous?

Mais je ne fais que des hypothèses...

Bon courage.
Laurent.
 
P

PF

Guest
Salut Claire.

Voici donc l'exemple en Zip.
Pour indication, lorsque je ne donne pas de postion à mes Userform (Top et Left), ca marche.
Par contre si je décale l'un des 2, ca foire.

A +
Patrick
 

Pièces jointes

  • Classeur1.zip
    17.9 KB · Affichages: 19
  • Classeur1.zip
    17.9 KB · Affichages: 30
  • Classeur1.zip
    17.9 KB · Affichages: 30
P

PF

Guest
Salut Laurent, n'ayant pas résolu mon problème, je me permet de t'envoyer le fichier joint (1 partie), celle qui traite de mon problème.

Pour indication, lorsque je ne donne pas de postion à mes Userform (Top et Left), ca marche.
Par contre si je décale l'un des 2, ca foire

A +
Patrick
 
P

PF

Guest
Salut SylSyl,

Bien que laurent et Claire se soit penché sur mon problème, ca persiste.
Je me permet donc de t'envoyer le fichier(1 partie), celle qui traite de mon problème.


Pour indication, lorsque je ne donne pas de postion à mes Userform (Top et Left), ca marche.
Par contre si je décale l'un des 2, ca foire
 
L

LaurentTBT

Guest
Bonsoir Patrick.

Je viens de regarder vite fait.
Si dans la procédure qui appelle le premier userform, tu remplaces:
Userform1.show par UserForm1.show 0
alors le bug a disparu.

Le 0 permet d'afficher l'userform1 en mode modal. Ceci n'est possible qu'à partir d'Excel98 où 2000, je ne sais plus.

Le problème vient bien de cette propriété modal.

Bonne soirée.
Laurent.
 

Discussions similaires

Réponses
18
Affichages
877

Statistiques des forums

Discussions
313 020
Messages
2 094 435
Membres
106 027
dernier inscrit
DonSparks