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

MS EXCEL 2010 - Połączenie dwóch kodów VBA oraz makra

21 Gru 2014 23:41 2286 4
  • Poziom 9  
    Witam sympatyków MS Excel

    W sieci znalazłem dwa ciekawe kody oraz makro, które chciał bym ze sobą połączyć tak żeby działały poprawnie we wspólnym arkuszu. Jak większość uczących się VBA napotkałem problem.

    Na jednej stronie znalazłem dość ciekawy opis formatowania warunkowego wraz z kodem VBA służącym do zaznaczania (wyróżniania) aktywnego wiersza tabeli:
    http://www.excelblog.pl/wyroznianie-aktywnego-wiersza/

    Na innej stronie znalazłem lekcję autorstwa samego pmsocho, opisującego makro służące do wyświetlania kalendarza, po kliknięciu w komórkę określonej kolumny:
    https://www.youtube.com/watch?v=yYOSd6DdMLQ

    Kod wyróżnienia (podświetlenia) aktywnego wiersza lub kolumny:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Kod do wyświetlania kalendarza:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Próbowałem połączyć ze sobą dwa, wyżej wymienione kody oraz makro, żeby współgrały ze sobą we wspólnym arkuszu:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Lecz wyświetla się mi taki komunikat:
    MS EXCEL 2010 - Połączenie dwóch kodów VBA oraz makra

    Jak prawidłowo połączyć ze sobą te dwa kody oraz makro?

    W załączeniu dwa pliki Excela:
    - Jeden wyróżniający aktywne wiersze tabeli
    - Drugi wyświetlający kalendarz
  • Pomocny post
    Poziom 33  
    W arkuszu może być tylko jedna procedura obsługi określonego zdarzenia, w tym przypadku zdarzenia SelectionChange. Należało połączyć tylko wnętrza procedur, pozostawiając jeden nagłówek.
    Proszę sprawdzić w załączniku, czy o to chodziło?
  • Poziom 9  
    Macieju, dokładnie oto mi chodziło.
    Pomogłeś mi, masz ode mnie punkty.

    Wiedział byś może jak poprawić kod żeby zakres komórek, które mają zostać aktywne, działał automatycznie w dół oraz w bok?

    Chodzi mi oto że gdy wstawię lub usunę nowy wiersz lub kolumnę do tabeli, nowe komórki będą od razu aktywne, czyli wyróżniane kolorem.

    Obecnie, gdy dodam nowe wiersze lub kolumny, wiersze z dołu tabeli oraz kolumny z prawej strony są niewidoczne (nieaktywne).
    To samo występuje gdy usuwam wiersze lub kolumny, wówczas aktywne komórki wychodzą poza zakres tabeli.
    To dla tego że ich zakres jest sztywno określony w kodzie VBA - ("B3:F25").

    W przypadku formatowania warunkowego potrafię ustawić taki zakres, bez ograniczenia w dół,
    „operując znakiem dolara”. Skorzystałem z lekcji pmsocho:

    https://www.youtube.com/watch?v=4h_U6hhnXTk

    Jeżeli chodzi o kod VBA nie bardzo potrafię sobie z tym poradzić.

    Proszę o pomoc...
  • Pomocny post
    Poziom 33  
    Dzień dobry,
    Wydaje mi się, że sprawę załatwi nadanie zakresowi roboczemu nazwy, pod warunkiem, że nie będzie się usuwać ostatniego wiersza ani ostatniej kolumny, a dodawać nowe również przed ostatnim wierszem i przed ostatnią kolumną, a nie za nimi. Poza tym nagłówki kolumn też trzeba aktualizować ręcznie.
    Gdyby istotne było, żeby tabela się automatycznie powiększała po wypełnieniu ostatniego wiersza, to trzeba by zastosować inne rozwiązanie.
    Proszę przetestować i sprawdzić, czy to wystarczy.
    Pozdrowienia.
  • Poziom 9  
    Dzięki Macieju, dokładnie o to chodziło.

    Pomogłeś mi z problemem.

    Dostajesz ode mnie punkty…