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

[vba Excel] Zapisanie obszarów arkusza Excel do pliku PDF – makro dzia

17 Lut 2016 20:59 2034 4
  • Poziom 11  
    Witam,

    Mam uprzejmą prośbę o pomoc.

    Założenia są takie: chce z pliku MS Excel z danymi „wyeksportować” do pliku w formacie „.pdf” zaznaczone / zdefiniowane obszary z dwóch arkuszy.

    Napisałem mokro w VBA Ms Excel, które to robi.

    To makro działa - ale nie działa tak jakbym chciał.

    Makro zapisuje plik w formacje pdf - ale nie z taką zwartością jak tego oczekuję (przykładowy plik w załączeniu).

    Teraz plik w formacie PDF jest zapisywany z nazwą i datą, oraz godzina zapisania w katalogu, w którym znajduje się pierwotny / podstawowy plik - i tak ma pozostać :-D ) …. ale:

    I tu mam dwa pytania:

    1. Jak zmodyfikować makro - aby kolejność zestawień / tabel w pliku PDF była inna:

    Teraz jest tak (tak działa teraz makro)

    Strona 1/3: „Tabela_1” z zakładki „zest_1”

    Strona 2/3: „Tabela_3” z zakładki „zest_1”

    Strona 3/3: „Tabela_2” z zakładki „zest_2”


    A potrzebuję aby było tak (i nie wiem jak to zmienić):

    Strona 1/3: „Tabela_1” z zakładki „zest_1”

    Strona 2/3: „Tabela_2” z zakładki „zest_2” – UWAGA tu zmiana

    Strona 3/3: „Tabela_3” z zakładki „zest_1” –UWAGA tu zmiana

    2. Jak zmodyfikować makro – aby te trzy wybrane / wskazane tabele ”zmieściły” się na trzech stronach, ustawionych w poziomie (teraz jest to 6 stron w pionie – i jest to nieczytelne – nie wiem jak to zmienić - przykład w załączeniu)?

    Przykładowy plik w załączeniu.

    Bardzo uprzejmie proszę o pomoc / podpowiedź.

    Pozdrawiam,

    Korek
  • Specjalista - VBA, Excel
    1. Jakie są przeszkody, aby umieścić wszystkie trzy Tabeli na jednym arkuszu?

    Dodano po 11 [minuty]:


    2. Sprobuj do exportu
    ActiveSheet.PageSetup.Orientation = xlLandscape
  • Poziom 11  
    Witam,

    @JRV
    >> Jakie są przeszkody, aby umieścić wszystkie trzy Tabeli na jednym arkuszu?

    Przykład może być nieco mylący bo tabelki w przykładzie są podobne (prawie identyczne) do siebie. Realne dane to kilka tabel z kilku arkuszy (są to wyniki przeliczeń) mają różną zawartość merytorycznie i objętościowo.

    Pozdrawiam
  • Poziom 11  
    Witam,

    @JRV
    >> Sprobuj do exportu ActiveSheet.PageSetup.Orientation = xlLandscape

    Jest inna metoda trzeba dodać formatowanie stron, ale trzeba je dodać przed zapisaniem obszarów w Array (po zapisaniu obszarów w Array formatowanie stron działa tylko dla pierwszego zakresu).
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    @ All ;-)

    Co do kolejności tabel w pliku PDF przyszło mi do głowy tylko jedno rozwiązanie. Stworzenie dodatkowej zakładki, przeniesienie do niej trzeciej tabeli z zakładki „zal_1”, stworzenie pliku PDF i wtedy skasowanie tej dodatkowej zakładki.
    Przykład w załączeniu.

    Czy nie da się tego zrobić prościej ? – mam wrażenie, że to rozwiązanie jest nieco „toporne” – ale działa.


    Jeszcze jedna prośba.

    Potrzebuję znaleźć w zadanym zakresie (w wierszu) ostatnią kolumnę zawierającą wartość liczbową. W tym wierszu mogą być albo liczby albo „x”- oznaczający brak danych.
    Zrobiłem takie makro przy pomocy takiego kodu - i działa (działający przykład w załączonym pliku).
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    I to mam pytanie – bo czegoś nie rozumiem -jeżeli określam, że „For i = 5 To 14” do zakładałem, że sprawdzanie zaczyna się od 5, 6, 7 itd. Wynik załączonego przykładu wskazuje, że jest odwrotnie – sprawdzanie zaczyna się od najwyższej wartości ? Czy też ja coś pokręciłem ?

    Mam prośbę o podpowiedź jak działa ta kolejność?

    Czy takie wyszukiwanie da się zrobić jakoś prościej ?

    Pozdrawiam,
    Korek
  • Specjalista - VBA, Excel
    Korek_123 napisał:
    że „For i = 5 To 14” do zakładałem, że sprawdzanie zaczyna się od 5, 6, 7 itd
    wszystko dobrze - zaczyna od 5-tej kolumny

    Kod: vb
    Zaloguj się, aby zobaczyć kod