XL 2010 Faire apparaitre USF à l'endroit ou je clique

creolia

XLDnaute Impliqué
Bonjour à tous je viens vous poser 2 questions et avoir un peu d'aide svp

je sais pas si c'est possible

1er question
es ce possible afficher mon userform1 à l'endroit ou je clique sur ma feuille
2eme question
comment faire pour fermer un userform juste en sortant la sourie de l'userform1(sans clic)

merci d'avance de votre aide
 

Dranreb

XLDnaute Barbatruc
Chez moi ça marche comme ça pour ce qui est du positionnement. Si les mots clés PtrSafe gênent, enlevez les.

J'ai ajouter la fermeture quand le curseur sort de l'UFm
J'ai du changer le cadrage pour qu'il y soit dedans au début.
J'ai enlevé les PtrSafe. Remettez les si ça ne marche pas sans eux chez vous.
 

Pièces jointes

  • PositCreolia.xlsm
    23.7 KB · Affichages: 72
Dernière édition:

Dranreb

XLDnaute Barbatruc
Oui, Magic_Doctor, je sais. J'ai pas voulu compliquer dans un premier temps, vu qu'il suffit d'en sortir le curseur pour qu'il se ferme.
Il faut écrire une UserForm_QueryClose qui met Cancel = True. Mais ça ne résoudrait probablement quand même pas tous les cas de figure…
Et surtout ça mettrait des bâtons dans les roues à Windows quand il voudra le décharger.
Cancel = Me.Visible puis Me.Hide serait dans doute un peu mieux si la boucle veille aussi à se terminer par Not Me.Visible
Enfin c'est compliqué, quoi…
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Comme ça ça ne plante plus et ça ne devrait pas gêner Windows :
VB:
Private Sub UserForm_Activate()
Dim Pt As POINTAPI, X As Double, Y As Double
ÇaTourne = True
Do While ÇaTourne: DoEvents
  GetCursorPos Pt: X = Pt.X * 3 / 4: Y = Pt.Y * 3 / 4
  If Not Me.Visible Or X < Me.Left Or X > Me.Left + Me.Width _
  Or Y < Me.Top Or Y > Me.Top + Me.Height Then ÇaTourne = False
  Loop
If ÀDécharger Then Unload Me Else Me.Hide
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Cancel = ÇaTourne: ÇaTourne = False: ÀDécharger = CloseMode >= vbFormCode
End Sub
En tête les variables globales suivantes :
VB:
Private ÇaTourne As Boolean, ÀDécharger As Boolean
 

Magic_Doctor

XLDnaute Barbatruc
Re,

Ça a l'air de bien marcher.
Trop compliqué pour que j'y fasse des modifications comme, par exemple, ne faire apparaître l'UF uniquement sur une aire donnée de la feuille. Ici, ce serait [A1, E17].
 

Pièces jointes

  • PositCreolia (1).xlsm
    22.9 KB · Affichages: 58

Discussions similaires