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 2003 uruchamianie makr w zależności od wartości w komórce

censor 04 Maj 2012 13:41 2689 3
  • #1 04 Maj 2012 13:41
    censor
    Poziom 9  

    Proszę o pomoc w rozwiązaniu problemu:
    1. komórka "F11" ma wartość 1 lub 0 (wynik operacji w arkuszu).
    2. w zależności od jej wartości chciałbym by uruchamiało się Makro1 lub Makro2.
    3. Napisałem taką instrukcję:

    Private Sub Worksheet_Calculate()
    Sprawdz = Range("F11").Value
    Select Case Sprawdz
    Case 1
    Call Makro1 'sortuj_malejąco
    Case 0
    Call Makro2 'sortuj_rosnąco
    End Select
    End Sub

    4. Niestety przy zmianie wartości w F11 wyskakuje komunikat "Sub or Function not defined" w edytorze VBA i zaznacza na niebiesko Call Makro1.

    Proszę o pomoc w rozwiązaniu problemu. :|

    0 3
  • #2 04 Maj 2012 20:55
    censor
    Poziom 9  

    Pomyślałem i wykonałem:

    Private Sub Worksheet_Calculate()
    Sprawdz = Range("F11").Value
    Select Case Sprawdz
    Case 1
    Call sortuj_malejąco
    Case 0
    Call sortuj_rosnąco
    End Select
    End Sub

    Działa :D :D :D

    sortuj_malejąco
    sortuj_rosnąco

    To są oczywiście makra zarejestrowane w arkuszu

    Dodano po 46 [minuty]:

    To co podałem wyżej działa z komórką F11 w aktywnym arkuszu.
    Czy ktoś wie jaki powinien być kod dla komórki z innego arkusza?

    0
  • #3 15 Maj 2012 11:37
    sz.piotrek
    Poziom 7  

    po prostu....


    Sprawdz = Range("nazwa_arkusza!F11").Value

    0
  • #4 29 Maj 2012 13:14
    censor
    Poziom 9  

    Private Sub Worksheet_Calculate()
    Sprawdz = Range("F11").Value
    Select Case Sprawdz
    Case 1
    Call sortuj_malejąco
    Case 0
    Call sortuj_rosnąco
    End Select
    End Sub

    Powyższa formuła działa tylko dla aktywnego arkusza tzn nie można sprawdzać wartości komórek w innym arkuszu.
    W arkuszu może być tylko jena taka formuła.

    0