XL 2016 position userform

Bill73

XLDnaute Junior
Bonsoir à tous,
je cherche à afficher un UserForm collé à un bouton. L'affichage est lancé au survol du bouton par la souris.
Pas de problème pour la gestion du survol, l'affichage du UF mais je n'arrive pas à trouver comment coller le UF au bouton.
Merci pour votre aide.
 

Bill73

XLDnaute Junior
Bonjour le forum,

de retour pour mon positionnement. Jusqu'à maintenant ça marchait bien.
Le soucis est que le bouton est positionné dans une zone figée (quelques lignes) en haut de l'écran.
Si je déroule le tableau, ... je perds le menu qui remonte en même temps.
N'y a t-il pas un moyen de le bloquer à sa place ?
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Je ne comprends pas ce que vous voulez dire. Il était question du positionnement d'un UserForm, qui ne change pas de place quand on fait défiler les lignes, pas d'un menu.
Cessons de discuter dans le vide, joignez un classeur montrant le problème.
 

Bill73

XLDnaute Junior
Deux petites captures d'écran :
UserForm1.jpg
UserForm2.jpg

la première, position initiale sur le bouton en B2
la deuxième avec un scroll haut qui me remonte le UserForm

Il semblerais que le User soit "accroché" à la feuille. Si c'est le cas, il va falloir que je change ce type de menu.
 

Dranreb

XLDnaute Barbatruc
Si vous voulez dire qu'il s'affiche au mauvais endroit après que vous ayez fait défilé les lignes quand vous clquez sur le bouton (de formulaire ou ActiveX ?) c'est peut être que vous calculez sa position dans le panneau de la fenêtre contenant les lignes au lieu de celui contenant le bouton. La méthode Posit de mon UFmCalend ne commet pas cette erreur en principe. Enfin du moins si on cherche à le positionner par rapport à une plage de cellules plutôt qu'à une forme placée en son centre.
 

patricktoulon

XLDnaute Barbatruc
bonsoir
a moins d'avoir affilié le userform en tant qu'enfant de la fenêtre application ( api setparent)il n'y a aucune raison que le scroll de la fenêtre excel déplace le userform
quand au figé freepanne etc... c'est exact un recalcule est nécessaire effectivement pour les boutons formulaire ,shapes , et range pour cadrer avec l'intention
il n'y a que les activX qui ne subissent pas le scroll de l'application
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
C'est une forme syntaxique admise pour Me.Evaluate("EmplacUFm"), sauf qu'à la différence de celle ci, elle n'admet pas d'expression variable, seulement un texte constant non délimité autrement que par ces crochets droits. Selon ce texte, la méthode Evaluate peut renvoyer un Range, un tableau dynamique ou un Variant. Si comme ici c'est un nom, elle renvoie ce que signifie sa référence, là un Range. C'est donc aussi équivalent ici à Me.Range("EmplacUFm")
Dans tout module objet, Me désigne l'objet auquel il est attaché, en l'occurrence un Worksheet, lequel représente une entité feuille de l'application hôte.
Enfin, car je vois que je n'ai pas entièrement répondu à la question, une variable EmplacUFm de type Range est initialée comme désignant ce Range.
 
Dernière édition:

Bill73

XLDnaute Junior
Si j'utilise dans une procédure type Sub BtMenu_MouseMove()
VB:
Dim EmplacUFm As Range
Set EmplacUFm = Me.[EmplacUFm]

j'obtiens une erreur d'exécution 424 - Objet requis

c'est pour ça que j'aimerais arriver à comprendre ce truc, parce que j'ai rajouté la même procédure (Mouse_Move) dans le calendrier, et là, ça fonctionne correctement !
 

Discussions similaires

Réponses
2
Affichages
184

Statistiques des forums

Discussions
312 184
Messages
2 086 008
Membres
103 088
dernier inscrit
Psodam