[se trasladó desde .Net a VBA] Lier 2 objets sur une feuille Excel

Dilueur Messages postés 24 Date d'inscription mardi 3 mars 2009 Statut Membre Dernière intervention 28 octobre 2011 - 24 déc. 2009 à 19:48
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 - 26 déc. 2009 à 13:18
Bonjour,

Je suis confronté à un problème d'objets qui ne restent pas collés l'un à l'autre.
Je m'explique plus en détail :
1/ je suis donc sous Excel 2007 (version en espagnol, je vis en Uruguay).
2/ Dans mon classeur j'ai 3 feuilles.
3/ Toutes ces feuilles peuvent être soit en mode "Vue Normale", soit en mode "Plein Écran" et dans ce cas ce que j'appellerais les "fioritures" ("Gridlines", "Headings" & "WorkbookTabs") sont occultées, afin, disons, d'avoir une présentation la plus sobre et la plus conviviale possible.
4/ Le problème devient alors évident : comment aller d'une feuille à l'autre (puisque les onglets des feuilles sont occultés) sans pour autant utiliser des raccourcis claviers (on peut les oublier, mais surtout tout le monde ne les connaît pas forcément) ?
5/ Pour pallier ce problème, j'ai pensé à 2 solutions :
- menu déroulant avec la liste des noms des feuilles du classeur ;
- Bouton ActiveX qui, quand on clique dessus, fait apparaître un POPUP avec les noms des feuilles du classeur.

Les menus déroulants marchent parfaitement bien. Mais je préfèrerais la solution des POPUP, et c'est là que j'ai un problème, pas grave certes mais pas très esthétique.
Quand je clique sur le Bouton ActiveX doit alors apparaître le POPUP à côté dudit bouton. Pour ce faire, j'ai paramétré les coordonnées du POPUP qui changent suivant que l'on soit en mode Plein Écran ou en mode Vue Normale. Seulement voilà, quel que soit le mode de l'écran, si je fais un Zoom avec CTRL + molette de la souris et qu'ensuite je clique sur sur le bouton ActiveX, le POPUP n'est plus collé au bouton. Curieusement les coordonnées du bouton sont toujours les mêmes, mais pas celles du POPUP.

Il y aurait-il un moyen pour, en quelque sorte, "aimanter" le bouton ActiveX à son POPUP quelles que soient les circonstances ?

Vous pouvez toujours accéder à ce fichier (très léger) à l'adresse suivante :
http://www.cijoint.fr/cjlink.php?file=cj200912/cijdGS7boW.zip

3 réponses

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
25 déc. 2009 à 21:08
Hola
Comment procèdes-tu pour ouvrir ta Popup ?
Si c'est bien toi qui fournit les coordonnées d'apparition de cette PopupMenu, mieux vaudrait prendre ces coordonnées au moment du clic, grace, par exemple, à l'API "GetCursorPos"
Partie déclarations :
  Private Type POINTAPI
    X As Long
    Y As Long
  End Type
  Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Partie programme :
  Dim maMousePos As POINTAPI
  Call GetCursorPos(maMousePos)

Tu récupèreras ainsi la position en pixels du curseur dans maMousePos.
A toi de voir si les coordonnées que tu dois passer avec l'appel de ta Popup est bien en Pixels.

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 la partage (Socrate)
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
25 déc. 2009 à 21:24
Buenas...

Aprecio mucho el hecho de que "se trasladó" el asunto.
Presumo yo que la razón de dicho traslado se encuentra (mas obviamente) en la elección de un tema que por nada correspondia al lenguage usado para desarrollar la aplicación concernida...

Comme quoi : question de langage et de choix du thème correspondant à ce langage.

J'en suis personnellement satisfait, de cette saine réaction ...
____________________
Très intéressante fable, L'OISELEUR, L'AUTOUR ET L'ALOUETTE !
Cliquer sur "Réponse acceptée" (en bas d'une solution avérée adéquate) rendra service à d'autres. PENSEZ-Y.
0
CTAC Messages postés 133 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 8 juin 2012 5
26 déc. 2009 à 13:18
Bonjour,

Un petit coup d'oeil dans l'aide ...

CommandBar.ShowPopup, méthode
Cette méthode affiche une barre de commandes sous la forme d'un menu contextuel selon les coordonnées indiquées ou selon celles du curseur actif.

Paramètres

Nom Obligatoire/Facultatif Type de données Description
Abscisse x Facultatif Variante Abscisse x de l'emplacement du menu contextuel. Si vous ne spécifiez pas cet argument, l'abscisse x du curseur est utilisée.
Ordonnée y Facultatif Variante Ordonnée y de l'emplacement du menu contextuel. Si vous ne spécifiez pas cet argument, l'ordonnée y du curseur est utilisée.

ctac
0
Rejoignez-nous