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

VBA Pętla - Kopiowanie wybranych arkuszy i tworzenie z nich nowego skoroszytu

mirek1969_12 12 Sty 2019 16:29 135 8
  • #1 12 Sty 2019 16:29
    mirek1969_12
    Poziom 9  

    Bardzo proszę o pomoc.
    Muszę skopiować około 400 par arkuszy (złożonych z określonych czterech arkuszy) i utworzyć z nich 400 skoroszytów.
    Do tej pory nagrałem sobie takie Makro i zmodyfikowałem na potrzeby tych 400 par, ale kod makra jest ogromie długi.
    Chciałem zrobić pętlę, która korzystałaby z nazw arkuszy umieszczonych w słowniku, ale nie potrafię podmieniać nazw arkuszy, które umieszczone byłyby w pętli. Nazwy arkuszy są umieszczone w cudzysłowiu jak jakiś tekst.

    W załączeniu przesyłam przykładowy plik z dwoma parami arkuszy do skopiowania i nagrany kod.
    Proszę o pomoc.

    0 8
  • #2 12 Sty 2019 17:17
    lanzul
    Poziom 27  

    mirek1969_12 napisał:
    400 par arkuszy (złożonych z określonych czterech arkuszy)

    Para = 2 szt., jak zatem może się składać z 4 szt. ?

    mirek1969_12 napisał:
    kod makra jest ogromie długi

    16 linijek kodu to "ogromnie długi" kod ?

    Nic nie rozumiem ... : ( ...

    0
  • #3 12 Sty 2019 17:22
    mirek1969_12
    Poziom 9  

    Nagrany i dopasowany kod do przekopiowania 1600 arkuszy i zapisanie ich w 400 skoroszytach ma 3200 wierszy, stąd moja prośba o pętlę .
    Może nie dokładnie napisałem, za każdym razem kopiowane są 4 arkusze i tak 400 razy. W załączeniu przesłałem malutką część kodu.

    0
  • #4 12 Sty 2019 18:02
    PRL
    Poziom 34  

    Cytat:
    ...i tak 400 razy...

    ... itak to się nie robi.

    0
  • #5 12 Sty 2019 18:46
    mirek1969_12
    Poziom 9  

    W skoroszycie, z którego będę kopiował jest 1600 arkuszy o określonych nazwach, które składają się z czterocyfrowej liczby (w przypadku liczb do 999 dodawane jest 0 z przodu) oraz kodu literowego. Liczby nie są kolejne, mogą znajdować się w dodatkowej tabeli, a kodów jest 4 rodzaje:
    SUMA
    WDT
    WNT
    WŚU

    Czyli 400 liczb po 4 kody czyli 1600 arkuszy. W nazwie utworzonego skoroszytu składającego się z każdych skopiowanych 4 arkuszy może znajdować się tylko liczba, a arkusze w tym pliku mogą mieć nazwy tylko kodów literowych.
    Czy uda się napisać pętlę do kopiowania i zapisywania?

    0
  • Pomocny post
    #6 12 Sty 2019 19:38
    lanzul
    Poziom 27  

    Czy te 4-ry "kolejne" arkusze należące do jednej grupy "cyfrowej", np.: 0202 (SUMA, WDT, WNT, WŚU) znajdują się jeden za drugim, czy też mogą być porozrzucane pomiędzy innymi arkuszami z innych grup numeracyjnych, np.: 0202SUMA, 0205WDT, 0202WDT, 0203WŚu, itd. ?

    0
  • Pomocny post
    #7 12 Sty 2019 20:18
    clubs
    Poziom 31  

    Jeżeli zawsze są to 4 arkusze od 'sumy' to

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0
  • #8 12 Sty 2019 21:54
    mirek1969_12
    Poziom 9  

    clubs napisał:
    Jeżeli zawsze są to 4 arkusze od 'sumy' to
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Bardzo dziękuję za pomoc.

    0
  • Pomocny post
    #9 14 Sty 2019 00:32
    lanzul
    Poziom 27  

    No skoro zostałem "zobowiązany" "Pomocnym ...", to ode mnie coś takiego:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    Tyle tylko, że musi być przestrzegany rygorystyczny reżim arkuszowy, tzn. tylko arkusze treściwe bez żadnych słowników, pomocników, itp. oraz arkusze jednej grupy numeracyjnej jeden za drugim, nieprzemieszane z innymi.

    0