cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 19 janv. 2008 à 18:34
Bonjour aussi ;-)
Tu parles de contrôle utilisateur = UserControl ?
Si tu es dans le contrôle utilisateur, Me se remplace par UserControl
Si tu parles d'une manière général (avec les composants classiques) et que tu es dans le code d'une forme, tu peux utiliser la méthode With qui permet de simplifier la syntaxe, exemple :
With monLabel
.Caption = "Vive Codes-Sources !"
.Left = 100
End With
Sinon, reprécise ta question qui n'est pas claire, précise bien l'environnement avec un simple exemple.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 19 janv. 2008 à 19:31
salut,
ok mais à partir de qui?...
où se trouve cmdallo et text1, sur ta form? un usercontrol?
ou par "me" tu entends simplement le contrôle de la procédure en cours?
c'est à dire récupérer "cmdallo" dès qu'il y a un évènement du commandbutton "cmdallo" comme çà pourrait être de la textbox ou de tout contrôle posé sur une Form?
çà par contre, ce n'est pas possible!
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 23 janv. 2008 à 22:52
L'astuce de MPi fonctionne bien mais c'est un peu ... bête ! En fait, c'est ton problème qui l'est, pas sa réponse !
Dans la sub Command1_Click(), le contrôle "cliqué" est obligatoirement "Command1" ! Dans Command2_Click(), ce sera "Command2" !
Inutile de passer par un appel à l'objet Me.ActiveControl pour obtenir sa propriété Name, alors qu'une constante String est suffisante ?
D'autant plus que l'asutce de MPi risque de ne plus fonctionner si tu te trouves dans l'EVT MouseMove d'un contrôle par exemple !
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 23 janv. 2008 à 23:20
"ce n'est pas possible!" est la réponse, parce qu'un moment ce genre de récup pose toujours problème et pas forcément facile à déboguer sur les gros projets...
surtout que le but est (en réalité) juste de faire un copier/coller dans chaque procédure, pour éviter de taper un nom de contrôle
tant que çà marche on est ok, mais après çà sera "çà marche pas" en question sur le forum, sans aucune explication, et là, la réponse sera "faut tout re-saisir"... on aura les gentilles grimaces ^^
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 24 janv. 2008 à 01:20
Trève de grimaces...
Tout à fait d'accord avec vous sur le fait que ça ne sert à rien, ce genre de code...
Ça ne sert à rien de savoir sur quel bouton on a cliqué, sachant qu'on met le code dans l'événement de ce même bouton... mais bon ... ActiveControl existe bel et bien tout de même... à quoi ça sert ? bah euh hummm ben on sait jamais...
Plus sérieusement, je pense me souvenir que ça pouvait être utile avec une MDI et des Childs... mais c'est loin dans ma mémoire et je n'ai pas vraiment l'intention de retracer tout ça dans mon fouillis de codes ... à moins que ça ne soit vital...
MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 24 janv. 2008 à 01:38
non MPi ce n'est pas vital ^^
Kristof_Koder a bien résumé la situation, c'est une bonne réponse mais par rapport à une question fondée au final sur une mauvaise conception. à moyen terme çà posera des problèmes.
et on a maintenant la suite (supposéee et évidente), c'est bel et bien juste pour pouvoir faire des copier/coller
gain de temps sur le coup oui...
m'enfin, le jeu en vaut-il la chandelle
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Kristof_Koder
Messages postés918Date d'inscriptionvendredi 3 août 2007StatutMembreDernière intervention27 octobre 200810 24 janv. 2008 à 10:42
MPi < ActiveControl sert effectivement par moment (lorsque tu es dans une procédure dans un module et que tu veux connaitre le controle actif sur une form quelconque par exemple)
Mais comme le dit PCPT, la ca ne sert qu'à éviter des modif à chaque copier/coller ... et cela pourrait poser des soucis.
tout ce que je voulais dire, c'est que Thantel doit bien être conscient des limites de la solution que tu lui a fourni (solution tout à fait correcte au demeurant !) et des problèmes qu'elle pourrait lui générer par la suite comme le soulignait aussi PCPT.
Libre à lui de l'employer ou pas ...
A noter aussi que cette technique va ralentir le code : appel aux propriétés de deux objets en tout : l'objet Me et l'objet ActiveControl.
On se bat sur des centième de seconde, certe, mais les eaux des petites rivières finissent toutes dans un océan !