Stránka 1 z 1

UserForm - poloha v okně

Napsal: 16 črc 2012 15:17
od VALL
Ahoj,
Hledám řešení pro zapozicování user formu.
Potřebuji, aby když kliknu do nějaké oblasti např., do buňky C10 tak, aby po vyvolání UserFormu se daný user form přikotvil k rohu vybrané buňky (jedno kterému).

Re: UserForm - poloha v okně

Napsal: 16 črc 2012 15:52
od karel.laska
Zdravím,

možná to bude zcestný, přesto, takto si zobrazuji kalendář.
Třeba to půjde podobně i s Vaším formulářem.

Kód: Vybrat vše

    If Not Intersect(Target, Range("C1:C2")) Is Nothing Then
         With Calendar1
            .Visible = True
            .Left = ActiveCell.Left + ActiveCell.Width
            .Top = ActiveCell.Top
            .Value = ActiveCell.Value
        End With
        kaledarvisible = True
       
    Else
        If kaledarvisible = True Then
            Calendar1.Visible = False
            kaledarvisible = False
        End If
    End If


S pozdravem
Láska Karel

Re: UserForm - poloha v okně  Vyřešeno

Napsal: 17 črc 2012 10:47
od VALL
Díky za inspiraci. Kód jsem musel trochu přepsat a funguje to.
Mám tam jenom malou drobnost a to, když zjistím polohu buňku a podle této polohy chci umístit UserForm, tak se nezakotví rohem na roh buňky, ale o nějakou korekci dovnitř buňky (zjistil jsem že je to kurzor na kurzor) a nad buňku.
Nevíte někdo, jak ukotvit roh UserFormu na roh buňky?

Pro ukázku upravený kód pro zapolohování UserFormu dle aktivní buňky.

Kód: Vybrat vše

Private Sub UserForm_Activate()
'přikotví k označené buňce UserForm

Dim ac As Object
Set ac = activecell

polohaL = ac.Left + ac.Width
polohaT = ac.Top + UserForm1.Height + ac.Height

UserForm1.Left = polohaL
UserForm1.Top = polohaT

End Sub

Re: UserForm - poloha v okně

Napsal: 17 črc 2012 10:54
od karel.laska
Zdravím,

myslím že by mělo stačit odstranit ac.Width
protože tím se posune začátek na další buňku.

Karel Láska

Re: UserForm - poloha v okně

Napsal: 17 črc 2012 11:09
od VALL
Odstranění ac.Width udělá to, že se žačátek posune před buňku.

Re: UserForm - poloha v okně

Napsal: 17 črc 2012 11:12
od karel.laska
Aha,

to jsem nezkoušel...

Teď už ano :-)..
Zkuste tedy místo ac.Width dát přímo hodnotu (třeba 3)

Láska Karel