Ciao Marco,
mi sono cimentato a fare un calendario PopUp ed è praticamente finito, anche con l'aiuto
del grande Norman.
Ora se il form è chiamato da una cella riesco ad agganciare il calendario alla cella con queste due istruzioni:
in Useform_Initialize()
Me.Top = ActiveCell.Top + 184
Me.Left = ActiveCell.Left + 21
e funziona perfettamente. Ma se il calendario è chiamato da un'altra userform, il calendario si aggancia sempre ovviamente
all'ultima cella attiva. C'è un modo per capire invece che è stato chiamato da una userform ed agganciarla ad essa o
al centro dello schermo?
Forse non si può fare...non lo so.
Prova quanto segue:
In cima ad un modulo standard, incolla:
'=========>>
Option Explicit
Public myTop As Double
Public myLeft As Double
magari qui:
'=========>>
Option Explicit
Public rDate As Range
Public bDateEntryMode As Boolean
Public myTop As Double
Public myLeft As Double
Nella procedura UserForm_Initialize nel modulo di codice della Userform frmCalendario, cancella:
Me.Top = ActiveCell.Top + 184
Me.Left = ActiveCell.Left + 21
In cima alla procedura, incolla:
Me.StartUpPosition = 0
If myTop = 0 Then
Me.Top = ActiveCell.Top + 184
Me.Left = ActiveCell.Left + 21
Else
Me.Top = myTop
Me.Left = myLeft
End If
Nello stesso modulo di codice, incolla la seguente procedura:
'--------->>
Private Sub UserForm_Terminate()
myTop = 0
myLeft = 0
End Sub
'<<=========
Ponendo che ci sia un controllo CommandButton sull'altra Userform, nel modulo di codice di quella Userform, incolla qualcosa del genere:
'=========>>
Option Explicit
'--------->>
Private Sub UserForm_Initialize()
With Me
.StartUpPosition = 0
.Top = Application.Top + 100
.Left = (Application.Width - .Width) / 2
End With
End Sub
'--------->>
Private Sub CommandButton1_Click()
Unload frmCalendario
With Me
myTop = .Top + .Height + 10
myLeft = .Left
frmCalendario.Show vbModeless
End With
End Sub
'<<=========
Nota che, come è scritto il codice, dopo l'eventuale spostamento dell'altra Userform, ricliccando il controllo CommandButton, il calendario si spostera nella nuova posizione sotto l'altra Userform.
Potresti scaricare il mio file di prova Marco20180427.xlsm
===
Regards,
Norman
