Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 70570 Skopiuj do schowka jak określić dynamiczny obszar wydruku w języku VBA? PROBLEM
Autor Wiadomość
AnnKa
Świeżak


Wersja: Win Office 2019
Posty: 3
  Wysłany: 03-04-2021, 08:38   jak określić dynamiczny obszar wydruku w języku VBA? PROBLEM

Witam

Próbuję stworzyć makro do drukowania, przy założeniu, że obszar wydruku jest dynamiczny.
Jest to formularz z danymi nagłówkowymi oraz tabelą z wieloma wierszami, przy czym nawet niewypełnione wiersze nie są tak do końca puste (zawierają lp, formuły oraz dane ogólnie opisujące komórki).
Stworzyłam formułę, która działa jednorazowo po wpisaniu ją w obszar wydruku:
Kod:
='the order form'!$A$1:$AP$12;PRZESUNIĘCIE('the order form'!$A$13:$AP$62;0;0;LICZ.JEŻELI('the order form'!$AQ$13:$AS$62;"PRAWDA");42)

A1:AP12 -obszar wydruku, który jest stały
A13:AP62-obszar uzależniony od zawartości AS13:AS62 (kolumny AS)
Jeżeli wiersz ma być widoczny na wydruku, w kolumnie AS ukazuje się "prawda" (ustalone na podstawie innej funkcji), i te wiersze oprócz danych nagłówkowych z "prawdą powinny się drukować"

jednak po przerobieniu jej przez excel przybiera postać: przy wypełnionych dwóch wierszach:
A1:AP16

Wiem, że jedyne wyjście z sytuacji, to stworzenie polecenia w języku VBA, ale z tym niestety nie daję sobie rady...
Będę wdzięczna za wskazówki i pomoc.
pozdrawiam
_________________
AnnKa
  
ID posta: 403124 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 2016
Pomógł: 2118 razy
Posty: 6628
Wysłany: 03-04-2021, 10:06   

Witaj na Forum!
Szkoda, że nie załączyłaś przykładowego pliku. Byłoby łatwiej dopasować wskazówki do Twojego przypadku.
Rzeczywiście obszar wydruku jest pamiętany statycznie jako adres zakresu.
Odpowiada za to w VBA polecenie:
Kod:
ActiveSheet.PageSetup.PrintArea = adres

Jako adres można podać tekst adresu (w cudzysłowie), który może być wyliczony. Można go wyliczyć w VBA lub w arkuszu i przekazać tu odwołanie do komórki z tym adresem.

W związku z tym powinnaś odpowiedzieć na dwa pytania:
1) Czy chcesz wyliczać adres obszaru wydruku w arkuszu (żeby mieć nad nim wizualną kontrolę) i przekazywać ten adres do VBA, czy wolisz, żeby obliczanie adresu było w kodzie VBA?
2) W jaki sposób chcesz uaktualniać obszar wydruku? Skrótem klawiaturowym? Przyciskiem w arkuszu? Automatycznie procedurą zdarzeniową - wtedy trzeba dokładnie określić kiedy ma to nastąpić. Ta aktualizacja nie może być zbyt częsta, żeby nie spowalniać arkusza.
Przykład w załączniku.

Obszar_wydruku.xlsm
Pobierz Plik ściągnięto 6 raz(y) 16.16 KB

ID posta: 403132 Skopiuj do schowka
 
 
Marecki 
Excel Expert



Wersja: Win Office 2019
Pomógł: 2530 razy
Posty: 8431
Wysłany: 03-04-2021, 10:39   

AnnKa, pokaż załącznik, bo nie bardzo rozumiem.
Skoro obszar stały to A1:AP12
Teraz dokładając dwa kolejne wiersze to obszarem wydruku powinien być zakres A1:AP14, a nie A1:AP16.
Czy tak ?

Kod:
Sub Drukuj()
Dim PA As Range    'PrintArea
Dim Adres As String

    With ActiveSheet
        Set PA = .Range("A1:AP12")
        Adres = PA.Resize(PA.Rows.Count + Application.CountIf([AS13:AS62], True)).Address
        .PageSetup.PrintArea = Adres
        .PrintOut
    End With

    Set PA = Nothing
End Sub
_________________
Hardware - ta część komputera, którą można kopnąć kiedy software przestanie funkcjonować.

Szkolenia z Excela , FB
Office 2019 Professional Plus , Windows 10 x64
Pozdrawiam, były mkkk23 teraz Marecki.
ID posta: 403133 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe