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 - Otwieranie plikow z katalogu -> kopiowanie danych + kolumna z nazwa pli

08 Sty 2018 09:53 1218 6
  • Poziom 5  
    Witam, mam pewien problem z kodem VBA.
    Chciałbym aby otwierał on po kolei każdy plik w katalogu (wszystkie maja taka sama strukturę) przedstawiają dane tygodniowe, gdzie zmienia się tylko w nazwie "KW01": "ATL06_KW01_2017" - > "ATL06_KW02_2017" --> itd.
    Po otwarciu pliku mialby on skopiować calosc z arkusza "TK0622LD" od kolumny B w prawo a następnie dodac w kolumnie A informacje z nazwy danego pliku "KW01".

    Jestem zupełnie poczatkujacy, napisałem kod, ale niestety nie działa. Prosba o pomoc.
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod
  • Pomocny post
    Poziom 29  
    A potafiłbyś zaadaptować któryś z kodów stąd (?):

    https://www.elektroda.pl/rtvforum/topic3415613.html
    lub
    https://www.elektroda.pl/rtvforum/topic3381526.html

    i pewnie (czyt. na pewno) jeszcze z wielu, wielu innych wpisów ?
    Czy raczej nic się nie uda ?

    Ps: Na początek zmień fragment ze ścieżką i nazwą na:
    Kod: vba
    Zaloguj się, aby zobaczyć kod

    i z tym spróbuj coś "potworzyć".
  • Poziom 5  
    Witam, dziękuje bardzo za odpowiedź i pomoc! :)
    Udało mi się dzięki Twoim wskazówkom pozmieniać część kodu, tak aby zadziałał.
    Miałem problem z wyskakiwaniem komunikatu "że istnieje dużo danych w schowku", ale dopisałem linijkę kodu na początku o nie wyświetlaniu alertów, a także linijkę o nie przeskakiwaniu okien podczas wykonywania kodu.

    Poniżej mój kod:

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Dziękie wielkie lanzul za pomoc :)

    Teraz "jedynie" jeszcze zostaje część, jak dołożyć w kolumnie A informację, które dane z którego pliku pochodzą na podstawie jego nazwy...
  • Poziom 29  
    AdamMalysz92 napisał:
    ... jak dołożyć w kolumnie A informację, które dane z którego pliku pochodzą na podstawie jego nazwy ...

    1.
    Przecież w kolumnie 'A' masz skopiowane dane (z otwieranych po kolei plików).
    Jeśli wkopiujesz coś w to miejsce, to "stracisz" owe dane.
    Na pewno do komórek kolumny 'A', a nie jakiejś innej, leżącej poza zakresem, przed chwilą, skopiowanych danych, czyli od kolumny 'AI' "w górę" ?

    2.
    Z każdego otwieranego pliku pobierasz za każdym razem dane wraz z naglówkiem i z nagłówkiem owym wklejasz do zeszytu z makrem. Taki był zamysł, czy też nagłówek ma być tylko raz wkopiowany z danymi, z pierwszego otwartego pliku ?
  • Poziom 5  
    Masz rację, nie mogą one trafiać do kolumny A.
    Mogę jedynie w kodzie przesunąć wszystko o jedną kolumnę w prawo (to będzie wygodniejsze). Wtedy zakres kopiowania będzie od "B" do "AI".

    Pytanie jak w kolumnie A miałyby się automatycznie uzupełniać informacje z jakiego pliku pochodzą dane.
  • Pomocny post
    Poziom 29  
    A co z nagłówkami, powtarzanymi wielokrotnie ?
    Ma być tylko jeden, czy ileś tam za każdym razem nowy i w wyniku nagłówkowy przekładaniec ?

    Edycja:
    Nie przyjrzałem się ... kopiujesz bez nagłówka ...

    Ale może przy pierwszym kopiowaniu powinien on być przenoszony jednorazowo ?
    Ręczie go wklepujesz/kopiujesz ?


    Edycja:
    Sprawdź:
    Kod: vba
    Zaloguj się, aby zobaczyć kod

    Z arkusza docelowego należy wykasować wiersz nagłówków - makro samo rozpozna, czy trzeba go przenieść z plików źródłowych, czy nie.
  • Poziom 5  
    Bardzo dziękuje za pomoc.
    Bardzo uniwersalny kod, wykorzystałem go już do kilku raportów :).