Position d'un composant dans un Form - VB/VBA/VBS - Programmation
Marsh Posté le 22-07-2009 à 17:15:37
ReplyMarsh Posté le 22-07-2009 à 17:23:06
Finalement j'ai pu réussir mais c'est moins dynamique que prévu.
En fait le souci c'est que le référentiel pour les coordonnées des composants est le composant parent. Donc pour connaitre la position d'un composant inclus dans plusieurs composants en cascade il est impossible de savoir sa position absolue sans connaitre la position des composants intermédiaires.
Marsh Posté le 22-07-2009 à 17:24:46
Et un .Parent ?
Tout depend de quel type de form tu parles...
Marsh Posté le 22-07-2009 à 17:54:11
C'est un UserForm.
Le Parent ça va pas car déjà il m'a semblé que pour un composant je n'avais pas cette propriété et surtout qu'il peut y avoir des parents, grand-parents...etc sans que je sache leur nombre.
Marsh Posté le 22-07-2009 à 18:01:41
Comment peux tu ne pas connaitre le nombre ?
C'est bien toi qui les créé non ?
Et le .Parent fonctionne bien dans un UserForm
Imaginons un Bouton CommandButton1 dans un UserForm UserForm1
Code :
|
Ca te renvoit UserForm1, et ainsi de suite. Rien ne t'empeche de faire d'ailleurs une boucle a la con (genre jusqu'a 30 niveaux) et de recuperer le dernier niveau jusqu'a erreur...
Marsh Posté le 22-07-2009 à 18:07:43
SuppotDeSaTante a écrit : Comment peux tu ne pas connaitre le nombre ? |
En fait je fait une solution qui sera incluse dans le programme d'autres personnes donc ça doit marcher dans tous les cas.
Mais merci pour l'astuce du .Parent.
Marsh Posté le 15-07-2009 à 14:38:50
Bonjour,
J'ai un petit problème en VBA avec un Form où je veux placer dynamiquement un composant (combobox pour l'exemple) par rapport à son conteneur (frame on va dire).
Donc quand je crée une combobox dans la frame pas de problème car la position (0,0) est le zéro de la frame. Le problème est que je dois créé la combobox en dehors de la frame et du coup le (0,0) est celui du Form. Là on pourrait penser qu'il suffit de rajouter aux coordonnées la position de la frame dans le Form mais le problème c'est qu'il peut y avoir éventuellement un composant (voire peut-être plusieurs dans le futur) dans le form qui contient la frame mais je ne connais pas ce composant et il me faut une solution dynamique.
Comment faire pour atteindre le (0,0) de la frame ?
Merci d'avance.