|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour,
Agacé par le temps passé à positionner les boutons OK et Cancel de mes UserForm, j'avais il y a quelques temps développé une petite procédure qui gérait cela automatiquement. Il y a deux jours, j'ai rajouté des constantes pour pouvoir mieux encore paramétrer cette procédure. Je me suis dit que cela pourrait peut-être profiter à d'autres. Voici donc le code. Les boutons sont nommés cbOK et cbCancel Code :
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
||
|
|
10
|
|
|
#2 |
![]() ![]() |
Salut Philippe
J'ai déjà réalisé ce genre de choses, mais sur Access pour avoir des paramètres propres à chaque utilisateur (notamment des couleurs). Pour rendre ton code plus générique (dans le cas de plusieurs UserForm), je placerais la procédure PosButton dans un module et je passerai en paramètre le nom de l'UserForm au lieu d'utiliser le me qui est propre à l'UserForm qui contient le code. Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon ![]() Si vous pensez commencer sans un livre, oublier : livres pour débuter Vous pouvez consulter mes articles sur Access et PowerPoint Le blog Office. Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas. |
|
|
10
|
|
|
#3 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour Philippe
Merci pour ton intervention qui est très pertinente. En fait depuis quelques temps, j'ai tendance pour faciliter la portabilité des UserForm et la transparence du code, à placer les variables et modules propre à la UserForm dans celle-ci. Ainsi, en important simplement le module frm, je peux faire tourner la UserForm sans avoir à me tracasser de l'importation d'autres modules. De toute manière, je retiens cette suggestion et je vais placer un paramètre à ce module qui pourrait ainsi être placé soit dans l'objet UserForm lui-même soit dans un module extérieur. Belle journée Philippe
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
10
|
|
|
#4 |
|
Expert Confirmé
![]() |
bonsoir corona et philippe jochmans
je rejoint l'idée de philippe pour une portabilité et utilisation pour plusieurs userforms et pourquoi pas en faire un tout petit xla et l'utilisé quand on veux bien en tout cas ce petit module ![]() bonsoir a tout les deux 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é
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonsoir Patrick,
Merci pour ton message. J'ai donc adapté ma procédure qui peut indifféremment être placée dans un autre module ou dans le UserForm. Code :
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
||
|
|
00
|
|
|
#6 | ||||
|
Expert Confirmé
![]() |
bonsoir corona
pour plus de clarté dans le module de l'userform Code :
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 ![]()
|
||||
|
|
10
|
|
|
#7 |
|
Expert Confirmé
![]() Philippe TulliezDéveloppeur et formateur VBA, Excel et Word. Inscription : janvier 2010 Messages : 1 310 ![]() |
Bonjour Patrick,
Merci pour tes suggestions Pour l'argument du module PosButton(Frm As Object), je suis d'accord mais en fait je voulais le typer avec le nom de l'objet exact et je n'ai pas trouvé. Je croyais naïvement placer frm as UserForm mais cela n'a pas fonctionné. Si tu connais le nom exact de l'objet je suis preneur. Pour l'appel à la procédure, peut-être que pour les lecteurs cela aurait été plus clair de faire un simple appel PosButton Me. C'est ce que je fais quand la procédure est dans le même module mais lorsque qu'elle se trouve dans un autre module, je fais toujours précédé l'appel à la procédure par le nom du module. Ainsi nomModule.nomProcédure argument me permet de voir immédiatement à la lecture de mon code où se trouve cette procédure. Quand tu fais le débogage du code, c'est plus rapide quand tu as 5, 6 modules dans ton projet. Enfin pour moi, c'est plus clair. Alors dans tu as enlevé Set usf = Me qui précédait l'appel à la procédure et là c'est une erreur. Donc je dirais Set usf = Me: PosButton usf Bonne journée.
__________________
Philippe Tulliez http://philippe.tulliez.be Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau) Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
|
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() |
bonjour
j'ai enlever car je n'est pas penser au reste de ton code effectivement si cette variable te sert dans une autre fonction ou sub il peut être intéressant de la garder maintenant si cette variable te sert rien que dans cette fonction il ne sert a rien d'avoir une variable public constamment en mémoire faisant beaucoup de module classe je l'ai appris a mes dépends "trop de fuites mémoirepour l'objet "userform" il est préférable d'utiliser "object" bien plus permissif que MSforms...... j'ai aussi remarquer que bien que dans ce cas précis c'est juste pouvait tout simplement planter c'est du chez moi a une mise a jour d'office au plaisir d'en débattre si tu veux
__________________
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 ![]()
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com