Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Excel - makro, zastosowanie do kilku arkuszy.

03 Jul 2020 06:31 336 13
  • Level 3  
    Witam, mam makro który podświetla dany wiersz po kliknięciu w jedną z komórek tego wiersza, jednak działa on tylko na jednym arkuszy, w jaki sposób go edytować by działał na wielu arkuszach:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveWorkbook.Names("AktywnyWiersz").RefersTo = "=" & ActiveCell.Row
    End Sub
    [30.03.2021, webinar elektroda] Nowoczesna diagnostyka maszyn, monitorowanie i przewidywanie awarii. Zarejestruj się
  • Level 38  
    Trzeba odwołać się do aktywnego arkusz a nie do konkretnego.
  • Level 3  
    Zbych034 wrote:
    Trzeba odwołać się do aktywnego arkusz a nie do konkretnego.


    Jestem zielony w programowaniu, makro znalazłem w necie i nie wiem w jaki sposób to zrobić, czy mógłbyś mi pomóc
  • Level 38  
    Wklej ten kod w kodzie arkusza (w VBA)
  • Level 3  
    Nie rozumiem, przecież mam go wklejonego w kodzie arkusza
  • Helpful post
    IT specialist
    Korzystam z podobnego rozwiązania ale potrzebne jest też formatowanie warunkowe (aby zaznaczać tylko zakres wiersza).

    Zaznaczanie aktywnego wiersza za pomocą formatowania warunkowego i VBA

    1. Zaznaczanie aktywnego wiersza
    Definiujemy nazwę:
    AktywnyWiersz=0

    Wpisujemy formułę w VBA w sekcji Worksheet - SelectionChange

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ActiveWorkbook.Names("AktywnyWiersz").RefersTo = Target.Row
    End Sub

    Formatowanie warunkowe:
    Zaznaczamy obszar gdzie ma być wskazywany aktywny wiersz
    Nowa reguła -> Użyj formuły ...
    =AktywnyWiersz=WIERSZ(B3)
    B3 - adres lewej górnej komórki obszaru gdzie ma być wskazywany aktywny wiersz - ustawiamy wg własnych potrzeb
    Ustawiamy kolor i zakres obszaru.

    Aby zaznaczanie wiersza działało w każdym arkuszu trzeba wpisać formułę VBA w sekcji Worksheet - SelectionChange każdego arkusza.
    Przy okazji korzystam z podświetlenia bieżącej komórki w wierszu dodając drobny dopisek do VBA i formatowanie warunkowe :)
  • Level 3  
    @paweliw dokładnie formatowanie warunkowe miałem już ustawione i ładnie to śmiga ale tylko na jednym arkuszu, wpisałem formułę do sekcji wszystkich arkuszy lecz nadal działa tylko w pierwszym arkuszu
    @Zbych034 Nie mogę wstawić pliku ponieważ wyskakuje komunikat "... Niedozwolone rozszerzenie"
  • Helpful post
    VBA, Excel specialist
    Jeśli to ma działać w kilku czy we wszystkich arkuszach, trzeba ustawić formatowanie warunkowe w każdym z tych arkuszy. Zdarzenie SelectionChange można oprogramować na poziomie skoroszytu.
    Można to wszystko zapisać w VBA, ale trzeba określić zakresy formatowania i arkusze. W załączonym pliku kod, który we wszystkich arkuszach roboczych formatuje zakres A2:Z100 ciemnożółtym kolorem tła.
    W arkuszach nie powinno być innych formatowań warunkowych. Jeśli muszą być, trzeba to uwzględnić w kodzie.
    Uwaga: Mogą być problemy z poprawnym sformatowaniem komórek A1 i B1.
    Załącznik z kodem VBA należy zapisywać w formacie .xls lub skompresowany np. .zip.
  • Helpful post
    IT specialist
    bozio891
    W twoim arkuszu wystarczy zmienić zakres obowiązywania nazwy AktywnyWiersz z arkusza na cały skoroszyt (najprościej usunąć nazwę, przypisać ją ponownie ale zakres dać skoroszyt i odwołanie "=0")
    Zaznaczanie będzie działać w każdym arkuszu gdzie masz ustawione formatowanie warunkowe (październik i grudzień nie mają) :)
  • Helpful post
    VBA, Excel specialist
    Dopisałem definicję formatowania warunkowego w VBA. Formatowanie odtwarza się automatycznie przy otwieraniu skoroszytu. Szerokość zakresu formatowania jest określona przez zawartość trzeciego wiersza w każdym arkuszu. Wiersze zakresu formatowania są ustalone na stałe. Skoroszyt nie może zawierać innych formatowań warunkowych. Gdyby zawierał, trzeba to uwzględnić w kodzie.
    Nazwa AktywnyWiersz jest zdefiniowana dla całego skoroszytu.
    W przypadku dodania nowych arkuszy o takiej samej strukturze zostaną objęte takim samym formatowaniem.
  • Level 3  
    Dziękuję za pomoc Panowie, temat do zamknięcia
  • Level 3  
    Dziękuję za pomoc Panowie, temat do zamknięcia

    Dodano po 6 [minuty]:

    Nazwę "AktywnyWiersz" zdefiniowałem dla całego skoroszytu.