Problème d'affichage d'un UF au démarrage d'un classeur excel

Résolu
fabiendag - 22 févr. 2013 à 08:53
 fabiendag - 22 févr. 2013 à 15:42
Bonjour a tous,

j'ai un problème au démarrage d'un classeur excel. J'ai une macro qui affiche la fenêtre en plein écran et ensuite affiche un formulaire. Le problème est que le formulaire n'apparait que lorsque je clique dans ma feuille de calcul ou dans le classeur d'ailleurs je sais pas. Je ne sais pas pourquoi.
J'ai essayé de démarrer en enlevant le plein écran mais ca ne change rien. J'ai cherché sur plusieurs forums, mais je n'ai rien trouvé qui corresponde à mon problème.
Si quelqu'un a une idée, je suis preneur parce que la je sèche.
Merci d'avance


Fabien

14 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 févr. 2013 à 09:29
Bonjour,
Impossible de te répondre sans voir ton code de démarrage (et en particulier celui qui affiche le userform) !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 févr. 2013 à 09:37
Salut

Mettons-nous d'accord sur les termes :
"une macro qui affiche la fenêtre en plein écran"
la fenêtre : Feuille Excel ?
"et ensuite affiche un formulaire"
Formulaire : UserForm ?

Quelle est ta méthode d'appel de ta UserForm ?
Normalement, un Show donne le focus à la UF et il n'y a plus que le code de la UF qui s'exécute (avec .Show classique = vbModal).
Donne des détails sur ta méthode d'appel de la UF

Y a-t il du code dans les évènements du genre Activate ou Initialize de ta UF ?
Tu peux tenter de donner le focus à une TextBox par exemple :
maTextBox.SetFocus

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
3
Bonjour et merci pour ta réponse,

je suis nouveau ici et je ne sais pas comment je peux joindre un fichier à mon message. Si tu pouvais me dire ca que je t'envoie mon code...
merci d'avance.
Fabien
3
alors pardon si je suis un peu flou dans mes propos,
C'est bien le classeur qui s'affiche en plein écran au démarrage.
puis le userform est affiché par un userform.show à l'ouverture du classeur. J'ai rajouté un vbmodal pour tester aussi, mais ca ne change rien.
oui il y a du code dans UF.initialize qui permet de masquer la barre de titre de l'UF.
je vais essayer en donnant le focus à un objet de mon UF et je vous tiens au courant.

Fabien
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Petite question bête au sujet du focus. Si je le met après l'userform.show, il ne va pas s'éxécuter...

Fabien
3
Alors j'ai mis le setfocus d'un controle dans l'initialize du UF et ca marche...

merci beaucoup à vous 2 pour votre aide.

Je comprend quand même pas pourquoi j'ai eu un soucis sur cet affichage, mais bon là ca marche... tant mieux


Fabien
3
Problème Résolu


Fabien
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 févr. 2013 à 14:05
La méthode .Show toute seule sous-entend vbModal, c'est à dire que le code de la procédure restera figé tant que la forme appelée est visible (*).
L'usage de .Show vbModeless n'est pas conseillée sous Excel.
Dans ce cas de figure, le code qui suit le .Show sera exécuté immédiatement sans attendre la disparation à l'écran (*) de la forme.

(*) J'ai bien dit "disparation à l'écran", c'est à dire qu'un .Hide suffit, pas forcement un Unload.
3
Justement, j'avais mis userform.show vbmodal
et il fallait que je clique dans ma feuille de calcul pour faire apparaitre le formulaire.
c'est ca que je trouve bizarre... mais bon maintenant ca marche... je cherche pas plus loin pour l'instant on verra quand j'aurais un peu plus de temps.

Fabien
3
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
22 févr. 2013 à 15:10
Ton bout de code n'était probablement pas dans Private Sub Workbook_Open() du module ThisWorkbook

Sinon nul besoin de cliquer la feuille...

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
en fait dans workbook_open j'appelais une procédure qui faisait plein de truc et affichait ensuite le formulaire... donc indirectement oui le bout de code était dans workbook_open


Fabien
3
comment je fais pour joindre un fichier ici ?


Fabien
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
22 févr. 2013 à 15:40
Tu stockes le fichier sur un serveur internet et tu colles le lien (icone chaine) dans le message.
Ne propose pas ton fichier Excel : personne ne le chargera, par sécurité.
3
ok merci, je verrais ca lundi
merci encore de ton aide :)


Fabien
3
Rejoignez-nous