|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 50 ![]() |
Bonsoir,
Soit un fichier excel. A l'ouverture, un USF1 s'affiche en non modal et en plein écran. Par dessus USF1, USF2 s'affiche (pour demander un mot de passe). Après validation de USF2, USF3 ou 4 s'affiche selon la réponse apportée en USF2. Problème : parfois (c'est ce qui me parait bizarre), les USF3 ou 4 s'affiche sous le USF1. J'ai tout essayé : masquer USF1 puis le réafficher et afficher par dessus USF3 ou 4, afficher directement par dessus USF3 ou 4, cacher en utilisant "hide", décharger en utilisant "load", ... Bref c'est surtout le coté aléatoire qui me semble pas net. Une solution ? Merci |
|
|
00
|
|
|
#2 | |||
|
Expert Confirmé
![]() |
bonjour
il y a plusieur facon de faire mais certaines sont tres complexe la solution la plus simple comme ca vite fait serait d'utiliser les apis connais tu l'utilisations des apis (utilisation de librairie de dll) il y en a une qui pourrais faire ton affaire c'est la user32.dll(librairie concernant l'affichage des fenetres) Citation:
Citation:
Citation:
a toi d'adapter l'appel de la macro a ton mot de passe moi je me suis simplement servi de deux boutons dans le userfom2 ensuite on regle le probleme du usf 1 pour que l'on ne puisse plus le reduire (qu'il reste en plein ecran ) la solution c'est de bloquer le sysmenu(sa caption et son bouton ) pour cela on aura besoin de getsystemmenu et de deletemenu voila allez un exemplaire sera plus parlant en esperant que ca te soit utile et que tu en comprenne le code au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 50 ![]() |
Bonsoir,
Merci pour la réponse. Je connais très peu les apis (jamais utilisé, juste entendu parler). Je ne peux pas essayer ce soir je n'ai pas de pc avec moi. Cependant, entre temps, j'ai trouvé d'où venait le problème : Quand je valide le USF2 en cliquant avec la souris le bug se produit. Quand je valide avec la touche "entrée" tout fonctionne correctement. Une idée de la source du problème ? Merci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() |
oui
c'est ce que je disais précédemment quand tu clique sur un control dans un userform c'est celui ci qui prend le focus forcement récupère mon exemple ,essaie le,li le code tu va comprendre il est relativement simple bonne utilisation au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() |
Salut
Une autre solution serait de mettre l'intégralité de ce que contient ton UserForm dans un composant Cadre (possible de supprimer l'encadrement et le caption pour que seul le composants qu'il contient soient visibles). On va l'appeler FrameGlobal dans la suite. Celui-ci fera donc la taille du UserForm. Ensuite tu crées un autre Cadre, appelons-le FramePassWord, plus petit et qui contient les éléments qui se trouvent actuellement dans ton USF2. Tu définies sa propriété Visible à False pour l'instant. Lors de l'utilisation de ton UserForm, lorsque tu souhaites demander un mot de passe, tu passes FrameGlobal à visible False et FramePassWord à visible True. Tu fais pareil avec tes USF3 et 4 que tu remplaces par des Cadres dans ton USF1, c'est simple et rapide. Si tu es intéressé mais que mes explications ne sont pas suffisamment claire, fait signe. ++ Qwaz
__________________
MagicQwaz := Harry Potter la baguette en moins ![]() Le monde dans lequel on vit HammerFest Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer |
|
|
10
|
|
|
#6 | |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Citation:
cordialement, Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points Didier Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : février 2011 Messages : 50 ![]() |
Bonjour,
En fait, j'ouvre un USF en plein écran pour éviter que les utilisateurs aient accès à la feuille. C'est une protection en quelque sorte. Quand je mets ce code : Je dois fermer le USF1 pour que USF2 s'affiche. Si je mets ce code : Ca fonctionne bien mais pas pour les autres USF si je valide le USF2 avec la souris (voir plus haut). Je vais voir haut. Je vais regarder pour les solutions proposées plus haut. Jusqu'à lors je n'utilisais pas les API parce qu'il me semble que ça pose problème si on passe d'une version office à une autre non ? Merci |
|
|
00
|
|
|
#8 | |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
Citation:
Avant de bricoler les API, testes avec tes USF en modal et en jouant sur Hide, Unload, Show et Load => facile et stable en comparaison. Pour éviter les accès, tu crée une Feuille "de garde" avec juste un titre / logo dessus et tu interdit l'accès aux autres etc. Cordialement, Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
00
|
|
|
#9 | ||
|
Invité régulier
![]() Inscription : février 2011 Messages : 50 ![]() |
Citation:
Citation:
Par contre, comment supprimer le cadre noir qui entoure la cellule active ? (je dis bien ne pas afficher le cadre et non les bordures). Merci |
||
|
|
00
|
|
|
#10 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
tu te fais une page de garde (cf image jointe sur aplli de ventilation de données d'import).
Cordialement, Ps : si le côté technique de la réponse = OK ou pas => pensez à cliquer sur les pouces et quand question résolue à la taguer résolue, et chaque action vous rapporte des points Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() |
bonjour a tous
je suis assez d'accord avec qwazerty tu met ton usf 1 en plein ecran tu y met 1 frame nommée par exemple "mot_de_passe" visible avec les control correspondant a ceux du usf2 et deux autre correspondant au usf3 et usf4 avec tout leur controls au clic de ceux ci rendre visible la frame "frame3" ou "frame4" visible beaucoup moins compliqué car la plus besoins d'apis et qu'un seul usf au plaisir
__________________
mes fichiers dans les contributions: mon formulaire mail avec CDO en vba et mon formulaire mail avec CDO en vbs dans un HTA mon nouveau mouse in out pour les boutons dans un userform mon addin pour prendre un cliché de selection de cellules si ton problème est résolu n'oublie pas de pointer :résolu:ça peut servir aux autres et n'oublie pas de voter ![]()
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com