logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

VBA znajdowanie kom z białym tłem i zamiana w nich czcionki w wielu arkuszach

MagdKacz 02 Kwi 2019 14:59 408 5
REKLAMA
  • #1 17881526
    MagdKacz
    Poziom 5  
    Posty: 14
    Witam, mam serdeczną prośbę o wsparcie w pisaniu kodu jak w tytule, przy czym dodam, że w aktywnym zaznaczeniu.
    Wstępnie przygotowałam skrypt jak niżej, ale pomimo że wcześniej poszczególne zadania działały to całość nie wykonuje procesu.
    Będę wdzięczna za podpowiedź gdzie i co zmienić, bo nad sprawą już siedzę kilka dni :(
    Kod: VB.net
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 17882781
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Nagraj takie makro:

    -ustaw aktywną komórkę A1
    -naciśnij Ctrl+Shift+Strzałka w dół
    -naciśnij Ctrl+Shift+Strzałka w prawo

    zobacz różnicę...

    Osobiście staram się unikać select'ów, więc zrobiłbym to tak:
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 17883045
    MagdKacz
    Poziom 5  
    Posty: 14
    adamas_nt bardzo dziękuję za podpowiedź, po nagraniu makra i podstawieniu go do całości faktycznie udało się wykonać, jednak nie w całym zakresie, sprawdziłam o co chodzi i wyszło mi że opcja
    -naciśnij Ctrl+Shift+Strzałka w dół
    -naciśnij Ctrl+Shift+Strzałka w prawo
    powodują zaznaczenie obszaru ale nie w całości pokrywającego się (w dół) z moim zakresem (tj. takim zgodnym z podglądem podziału strony), a za razem bierze do przerabiania zakres na prawo trylion kolumn które nie są w zakresie wydruku.

    Po wstawieniu Twojego kodu (za który też bardzo dziękuję) excel mi się tak zamulił że musiałam go wyłączyć menadżerem zadań, za dużo komórek do analizy.

    Próbowałam ustawić zakresy arkusza tak żeby nie sięgały dalej jak podział strony (zgodny z podglądem do wydruku) żeby tylko to brał do zmiany, po w innych polach dzieją się formuły poukrywane etc dla których nie chcę aby były zmieniane czcionki bo to strata czasu, ale nie potrafię sobie z tym poradzić, masz może pomysł jak to ustawić w VBA?
    Konkretnie: potrzebuję taki zakres ustawić od komórki A1 aby był zgodny z zakresem przygotowanym do wydruku tj. jak w podglądzie podziału stron, może jakaś podpowiedź?
  • REKLAMA
  • #4 17884887
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Działanie makra znacznie przyspieszy wyłączenie odświeżania ekranu na czas jego działania.
    Podejrzewam również, że dałoby się inaczej podejść do zagadnienia. Ale tu potrzebny byłby załącznik w postaci pliku z przykładowym arkuszem i określeniem warunków dla formatowania.
  • REKLAMA
  • #5 17885029
    MagdKacz
    Poziom 5  
    Posty: 14
    Dzień dobry, no właśnie wczoraj po wielu godzinach udało mi się rozwiązać zagadnienie, poniżej kod końcowy i działa tak jak trzeba, bardzo dziękuję za Twoją pomoc adamas_nt! :)

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #6 17885920
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Piątka za samodzielność :)

    Tak na marginesie... Wypadałoby obsłużyć błąd w przypadku, gdy nie zdefiniowano obszaru wydruku.
    Coś jak:
    On Error Resume Next
    próba przypisania zakresu do zmiennej
    If Err > 0 Then
        jakiś komunikat
        Exit Sub
    End if
    On Error goto 0

    Bez selct'a byłoby ładniej ;)
    Set rng = ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea)
REKLAMA