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.

VBA odwołanie do innego makra -

vatran 12 Lut 2015 11:23 999 6
  • #1 12 Lut 2015 11:23
    vatran
    Poziom 5  

    Witam

    Posiadam dwa Checkboxy z przypisanymi makrami, makro przy jednym przycisku jest zależne od wartości True, False drugiego przycisku. Obecnie wszystko działa jeżeli najpierw włączę "nadrzędny" przycisk a później drugi. W przypadkach gdy najpierw włączę "podrzędny" przycisk lub wyłączę przycisk "nadrzędny" w momencie gdy oba mają wartość TRUE, niestety "kod podrzędnego" przycisku nie wykonuje się.
    Stwierdziłem że problem dało by się rozwiązać gdyby na początku makra "nadrzędnego" odwołać się do "podrzędnego" makra. Tutaj jednak mam problem, nie wiem jak to zrobić. Call które do tej pory używałem aby odwołać się do zwykłych makr nie działa. Czy ktoś mógłby napisać jak odwołać się do makra osadzonego w checkboxie?

    0 6
  • #2 12 Lut 2015 11:36
    marcinj12
    Poziom 40  

    A jakiś przykład po Polsku?? ;]

    0
  • #3 12 Lut 2015 12:12
    vatran
    Poziom 5  

    Niestety kodu makra podać nie mogę, ale pod spodem ten sam problem na abstrakcyjnym przykładzie

    [code]

    Kod: vb
    Zaloguj się, aby zobaczyć kod



    W skrócie prawidłowe działanie powinno wyglądać tak, jeżeli "one" jest True i "two" True wtedy wiersze 36 i 37 są odkryte, jeżeli "one " jest true "two" false to widać tylko wiersz 36
    Póki co, to tylko działa jeżeli klikam w odpowiedniej kolejności tzn. jeżeli najpierw zaznaczę "two" to niestety nie zobaczę wiersza 37, a jeżeli widzę oba wiersze i "one" nastawie na False to ukrywa się tylko 36 wiersz.
    Wydaj mi się że sytuacja by się rozwiązała gdybym w kodzie "one" odwołał się do kodu "two" tylko jak to zrobić?

    0
  • Pomocny post
    #4 12 Lut 2015 13:14
    marcinj12
    Poziom 40  

    Podstawa to:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    A potem nie wiem czy dobrze rozumiem, że wiersz 36 ma być widoczny tylko, kiedy jest zaznaczony CheckBox_One, a 37 - kiedy jest zaznaczony CheckBox_Two.
    Wtedy prosto:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Zaś jeżeli to jakieś bardziej skomplikowane zależności są, to:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #5 12 Lut 2015 13:56
    vatran
    Poziom 5  

    tak dla jasności, 37 widoczny tylko wtedy gdy oba checkBoxy są true natomiast 36 aby był widoczny potrzebna jest tylko wartość true dla "one"

    twój drugi sposób po drobnych modyfikacjach pod kątem całego makra działa, dzięki wielkie!

    a tak na przyszłość... istnieje możliwość wykonania makra przypisanego do checkboxa poprzez odwołania się do niego w kodzie innego makra, czy jedyna możliwość do kliknięcie na checkboxa?

    0
  • Pomocny post
    #6 12 Lut 2015 13:59
    marcinj12
    Poziom 40  

    vatran napisał:
    a tak na przyszłość... istnieje możliwość wykonania makra przypisanego do checkboxa poprzez odwołania się do niego w kodzie innego makra, czy jedyna możliwość do kliknięcie na checkboxa?
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    Możesz w ten sposób wywołać procedurę z dowolnego miejsca w kodzie.

    0
  • #7 12 Lut 2015 15:17
    vatran
    Poziom 5  

    ok, teraz rozumiem jeszcze trochę muszę posiedzieć w VBA aby przyswoić sobie składnię...
    kolejny raz dzięki

    0