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.

Excel VBA makro - Scalanie plików

27 Kwi 2016 19:33 1785 7
  • Poziom 11  
    Witam,
    potrzebuję makro do scalania wielu plików z danymi w jeden. Wszystkie skoroszyty do scalenia znajdują się w jednym folderze, dane do scalenia są zawsze w pierwszym arkuszu i mają jednakowe obszary. Jako, że nie bardzo radzę sobie z VBA, skorzystałem z dostępnego makra, które później lekko zmodyfikowałem do własnych celów. Jednakże pozostało mi kilka spraw z którymi nie jestem w stanie sobie poradzić, a więc do rzeczy:
    1) potrzebuje oddzielić poszczególne dane czerwoną linią na szerokość danych, udało mi się tylko pokolorować jedną komórkę
    2) chciałbym aby ścieżkę dostępu do folderu w którym są pliki do scalenia można było wpisywać do wyskakującego okienka (w chwili obecnej ścieżkę dostępu muszę wpisywać w makrze)
    3) chciałbym również aby obszar do kopiowania można było wpisywać w wyskakującym okienku (w chwili obecnej muszę wpisywać w makrze)
    4) dlaczego wpisywanie scalanych danych rozpoczyna się od wiersza B, czy możliwe jest aby rozpoczynało się od wiersza A?

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Proszę koleżanki i koledzy o pomoc, ewentualnie jakieś sugestie, z góry serdeczne dzięki.
  • Poziom 10  
    Średnio się na tym znam. Nie wiem czy o to chodzi VBA
  • Specjalista - VBA, Excel
    adam1205 napisał:
    aby obszar do kopiowania można było wpisywać

    taki sam dla wszystkich plików w folderze, lub dla każdego pliku inny?
    adam1205 napisał:
    rozpoczyna się od wiersza B, czy możliwe jest ?

    bo na pustem arkusze (xlUp).offset (1) = 2
    Jest możliwe. Np. wiersz dla wpisu
    wrsz = Application.CountA(Range("A:A")) + 1
  • Poziom 11  
    Tomuś_P tak to jest także makro do scalania, które między innymi też przeglądałem, tylko tyle, że ja potrzebuję dodatkowe funkcje, które wyszczególniłem w pierwszym poście, a których żaden gotowiec nie ma.

    JRV, jeżeli chodzi o wpisywanie od pierwszego wiersza, to dzięki pomocy kolegów z innego forum, już mam to rozwiązane, co do zakresu danych, to zakres danych jest taki sam dla wszystkich danych.
    Rozwiązany mam także temat podkreślania czerwoną linią na szerokość danych. Pozostają dwa tematy, wpisywanie zakresu danych (takiego samego dla wszystkich danych) i ścieżki dostępu do folderu z danymi. Obecnie pracuje nad tymi punktami, ale z uwagi na bardzo słabą znajomość VBA, może to trochę potrwać.

    Obecny stan kodu wygląda następująco:
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Poziom 11  
    Prace nad kodem makra posunęły się naprzód :D . W chwili obecnej jest już gotowe wpisywanie ścieżki dostępu i wpisywanie zakresu danych do kopiowania. Pozostaje jeszcze problem, że musze wpisywać zakres danych do kopiowania dla każdego pliku osobno (zakres danych do kopiowania mam taki sam we wszystkich plikach). Chciałbym aby raz podany zakres danych do kopiowania odnosił się do wszystkich plików.
    Ponadto potrzebuję jeszcze funkcji zliczania na koniec wszystkich scalonych plików (o ile nie jest to zbyt skomplikowane) np. w postaci komunikatu "Scalono 30 plików". Jeżeli ktoś mógłby mi pomóc w tym temacie będę bardzo wdzięczny.

    Obecny stan kodu makra:
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Specjalista - VBA, Excel
    Code:
    Obszar = InputBox("Podaj obszar kopiowania danych", "Obszar danych", "A1:K10") 
    Przed petlą For
  • Poziom 11  
    JRV, dzięki za dobre chęci. Tylko, że taki kod do wpisywania zakresu kopiowania danych, powoduje, że trzeba wpisywać zakres po kolei dla wszystkich plików, a ja chciałem aby można było wpisać jeden raz dla wszystkich plików.
    Na chwilę obecną mam już wszystko zrobione, wszystko już działa jak należy, łącznie z licznikiem scalonych plików :D .
    W razie gdyby ktoś potrzebował czegoś podobnego, poniżej zamieszczam kompletny kod do makra:
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Specjalista - VBA, Excel
    adam1205 napisał:
    że taki kod do wpisywania zakresu kopiowania danych, powoduje, że trzeba wpisywać zakres po kolei dla wszystkich plików

    Miałem na myśli przed petlą For
    Kod: vb
    Zaloguj się, aby zobaczyć kod