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.

Połączenie makr - Chciałbym połączyć dwa makra w jedno

Tomek456 10 Wrz 2013 17:11 3276 10
  • #1 10 Wrz 2013 17:11
    Tomek456
    Poziom 9  

    Witam,
    Mam taki problem, że mam dwa makra i chciałbym żeby były odpalane z dwóch warunków. Jeżeli spełniony jest 1 warunek If uruchom 1 makro (private sub ...end sub). W przeciwnym razie Else uruchom 2 makro (private sub ...end sub). Problem jest tylko tego rodzaju, że warunek 1 jest następujący. Mamy Tablicę z liczbami (wymiary) w arkuszu excel w jednej kolumnie C5:C30 i jeśli użytkownik wybierze wymiar z listy odpal makro 1 w przeciwnym razie makro 2. Makra już mam gotowe, czy ktoś mógłby mi podpowiedzieć jak się do tego zabrać? Całość jest odpalana z UserForm, brakuje mi tylko warunków.

    0 10
  • Pomocny post
    #2 10 Wrz 2013 17:31
    adamas_nt
    Moderator Programowanie

    Wywołuj warunkowo makra z... trzeciego makra. Coś na wzór:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #3 10 Wrz 2013 17:34
    Loker
    Poziom 38  

    Nie do końca zrozumiałem, w czym problem ;) Chodzi o coś takiego?

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #4 11 Wrz 2013 13:17
    Tomek456
    Poziom 9  

    Hmm "wartość szukana" w kodzie, jest deklarowana przez użytkownika, on wpisuje w ImputBox wymiar, następnie makro szuka w tablicy, jeśli jest to wymiar z tablicy odpal makro1, jeśli nie to makro 2:) chyba o to mi chodziło, dzięki chłopaki:)

    Dodano po 2 [minuty]:

    Oj nie z ImputBox tylko z UserForm

    0
  • #5 13 Wrz 2013 13:49
    Tomek456
    Poziom 9  

    Witam raz jeszcze:)
    Czy takie makro miałoby sens w tym przypadku? Czy zadeklarowanie Tablicy jako Obiektu jest poprawne? A może jest lepszy sposób? Dziękuję za pomoc i pozdrawiam

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #6 13 Wrz 2013 18:00
    adamas_nt
    Moderator Programowanie

    Tomek456 napisał:
    Czy takie makro miałoby sens w tym przypadku?
    Kto wie... patrz niżej.
    Tomek456 napisał:
    Czy zadeklarowanie Tablicy jako Obiektu jest poprawne?
    Nie.
    Tomek456 napisał:
    A może jest lepszy sposób?
    Tak, nie wiemy tylko jaką to tajemniczą wartość kryje zmienna 'WymZloz' i czego dotyczy.

    Na początek porównaj z
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    1
  • #7 13 Wrz 2013 19:32
    Tomek456
    Poziom 9  

    WymZloz to w skrócie wymiar złożenia, złożenia, czyli dużego rysunku o wymiarach, z zakresu od 300 mm do 1200 mm, niektóre z tych wymiarów zawiera tablica, czyli tabela w excelu i dlatego muszą być dwa makra:) Użytkownik wpisuje wymiar tylko, a makro samo mu tworzy złożenie na podstawie bazowego złożenia, z jednego lub drugiego warunku. Tablica to właśnie ta jedna kolumna z wymiarami ("C5:C30"). Dziękuję za poświęcony czas:)

    0
  • Pomocny post
    #8 13 Wrz 2013 21:26
    adamas_nt
    Moderator Programowanie

    Strzelam :) Czyli przeszukujemy zakres (tu zapisany w tablicy)

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #9 13 Wrz 2013 22:02
    23844
    Użytkownik usunął konto  
  • #10 13 Wrz 2013 22:22
    Tomek456
    Poziom 9  

    Apropo tablicy raz jeszcze, hmm może źle tłumaczę. To są komórki w arkuszu excel, zwykłe wymiary: 500, 509, 515, itd. zawarte w komórkach C5:C30. I teraz tak, jeśli użytkownik w wpisze 500 to odpali makro1, jeśli wpisze natomiast inny wymiar, którego nie ma w tablicy odpali makro2, wydaje mi się, że wiele mi pomogliście, dlatego sądzę, że już sobie poradzę, dzięki wielkie:)

    0
  • #11 21 Wrz 2013 13:25
    Tomek456
    Poziom 9  

    Witam,
    Możliwe, że temat już się przedawnił i odpowiedzi nie uzyskam, ale kto wie:) Co do powyższego makra mam jeden mały problem, za każdym razem makro zwraca mi wartość prawdy, czyli knyps=TRUE, uruchamia zawsze makro1. Może to wynika z tego, że chciałbym, aby WymZloz był definiowany przez użytkownika za pomocą InputBox. Krótko mówiąc, ja to zadeklarowałem w ten sposób:
    UserForm_Dim.Hide
    WymZloz = UserForm_Dim.TextBox_Dim.Value
    Tylko teraz pytanie, jak to odpowiednio poprawić, ponieważ w powyższym kodzie WymZloz jest zdefiniowany jako Long. Moim zdaniem WymZloz się dubluje w tym momencie, co raczej nie jest poprawne..

    0