Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel VBA - Stala pozycja i rozmiar obiektu ActiveX

greep 06 Sty 2014 21:24 1389 6
  • #1 06 Sty 2014 21:24
    greep
    Poziom 19  

    Mam akrusz excela i kontrole ActiveX (lista rozwijalna)
    Chcialbym zeby ta lista zmienila pozycje i rozmiar na taka jak podana w kodzie, za kazdym razem jak otwieram arkusz.

    Przypuscmy przesuwam obiekt (liste) w dowolne miejsce akruszu i zapisuje zmiany w pliku.
    Po ponownym otworzeniu pliku, kontrola powinna powrocic na miejsce okreslone w kodzie.

    Na razie udalo mi sie przypisac kod, ale niestety nie dziala on po otworzeniu pliku, mimo ze powinien (tak mi sie przynajmniej wydaje)...

    Liste udaje mi sie przeniesc na porzadane miejsce tylko po tym jak:
    - otworze arkusz
    - wejde do edytora VBA
    - klikne mysza gdziekolwiek wewnatrz Workbook_Open() Sub i
    - klikne RUN
    * pomijam oczywiscie fakt ze moge ja przeniesc manualnie :)

    Co zrobic zeby lista lub jakikolwiek inny obiekt ActiveX przenosila sie na porzadane miejsce zaraz po otwarciu arkusza?

    Code:
    Private Sub Workbook_Open()
    
        'Fixed size & location
        With Sheets("Sheet1").OLEObjects("ComboBox1")
            .Left = 10
            .Top = 10
            .Width = 150
            .Height = 20
        End With
    End Sub


    Excel VBA - Stala pozycja i rozmiar obiektu ActiveX

    0 6
  • #2 06 Sty 2014 21:35
    adamas_nt
    Moderator Programowanie

    Zapisuj w dodatkowym, ukrytym arkuszu wartości (argumenty położenia) przy dezaktywacji arkusza (ew. workbook_beforeclose) i pobieraj przy aktywowaniu...

    0
  • #3 06 Sty 2014 21:46
    greep
    Poziom 19  

    adamas_nt napisał:
    Zapisuj w dodatkowym, ukrytym arkuszu wartości (argumenty położenia) przy dezaktywacji arkusza (ew. workbook_beforeclose) i pobieraj przy aktywowaniu...


    Jaki jest cel dodatkowego (ukrytego) arkusza? chce to zrobic mozliwe jak najprosciej.
    Wartosci przy zamykaniu akrusza nie sa mi potrzebne (tzn. nie chce ich zapisywac), interesuje mnie tylko konkretne polozenie przy kazdym odworzeniu arkusza.

    0
  • Pomocny post
    #4 06 Sty 2014 21:52
    adamas_nt
    Moderator Programowanie

    Ach :) sorry, nie doczytałem... Wszystko jest OK, makro wklej do Thisworkbook (nie w kod arkusza).
    Myślałem, że chcesz by Excel "zapamiętał" zmianę położenia...

    0
  • #5 06 Sty 2014 22:10
    greep
    Poziom 19  

    adamas_nt napisał:
    Ach :) sorry, nie doczytałem... Wszystko jest OK, makro wklej do Thisworkbook (nie w kod arkusza).
    Myślałem, że chcesz by Excel "zapamiętał" zmianę położenia...


    Dzieki, a moglbys jeszcze szybko wyjasnic dlaczego kod w 'Sheet1' nie dzialal i trzeba bylo uzyc 'ThisWorkbook'? Tak zebym na przyszlosc wiedzial gdzie mam umieszczac kod - czy to zalezy od tego co macro ma robic?
    pzdr.

    0
  • #6 06 Sty 2014 22:46
    adamas_nt
    Moderator Programowanie

    'Workbook_Open', jak sama nazwa wskazuje, dotyczy skoroszytu i jest jego procedurą zdarzeniową (prawa lista rozwijalna na górze okna edytora).

    0
  • #7 07 Sty 2014 00:54
    greep
    Poziom 19  

    adamas_nt napisał:
    'Workbook_Open', jak sama nazwa wskazuje, dotyczy skoroszytu i jest jego procedurą zdarzeniową (prawa lista rozwijalna na górze okna edytora).


    faktycznie :) glupie pytanie...

    0