Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
P

PF

Guest
Salut G'Claire...

Oui mais moi, j'aimerai pouvoir passer par un userform car par rapport à mon fichier, cela resterait cohérent.
Alors, as tu la solution ???

Merci d'avance
Patrick
 
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
 
P

PF

Guest
Bonsoir Laurent, le fait de dégager de la mémoire me permettrait de faire quoi en plus ?
De plus quand tu dis que je dois avoir un problème d'affichage que veux tu dire par là ?

Amicalement.
Patrick
 
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
Mon problème Claire c'est que mon fichier zippé dépasse 50Ko, et que je ne peux pas te l'envoyer comme ca, je le sépare du reste, je retente après.
Sans aucun doute demain.
Salut.

Patrick
 
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
878
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…