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 - Dynamiczny link do zamknietych plików excela

szarlich 31 Sty 2014 12:15 1779 2
  • #1 31 Sty 2014 12:15
    szarlich
    Poziom 6  

    Witam,

    chciabym stworzyc dynamiczny link do obszarow w innych plikach excela ktore sa zamkniete.
    Cos w stylu:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    a1= to formula zwracajaca lokalizacje pliku zapisanego gdzies na dysku
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    b1=formula zwraca nazwe arkusza
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    c1= to zmienna w ktorej sa pierwsze litery nazwy pliku

    Problem jaki mam to to ze vba tworzy link z wartocia np. b1 a nie bierze zawartosci komorki w ktorej znajduje sie np. data która odróżnia pliki od siebie.
    Po drugie chcialbym aby zmienna c wklejala zawartosc c1 dla kolumny c, d1 dla kolumny d i tak dalej. Podobny temat w ktorym ktos ma ten sam pomysl ale bez odpowiedzi niestety (http://www.vbaexpress.com/forum/showthread.php?48547-Variable-vlookup-in-VBA-in-closed-file)


    Probowalem funkcji indirect ale ona bierze wartosci tylko z plikow otwartych, funkcja indirect.ext nie wchodzi w rachube bo trzeba ja instalowac a komputer jest roboczy i to nieprzejdzie. Probowalem funkcji pull (https://groups.google.com/forum/#!msg/microsoft.public.excel.worksheet.functions/l9ObQ9ku6Bk/_a2jdMD2SeIJ) i ona dziala swietnie ale jest za wolna czytanie informacji ktore mnie interesuja zajmuje 62 min a bedzie w przyszlosci wiecej.

    Przetrzepalem duzo forow i puki co nie znalazlem odpowiedzi wiec moze pomożecie?

    (moja wiedza VBA to proste makra, nie potrafie tworzyc petli i innych bardziej skomplikowanych rzeczy)
    Ps. Tak wiem ze baza danych bylaby najlepsza do tego problemu ale jest poza zasiegiem ;)

    0 2
  • #2 31 Sty 2014 14:25
    adamas_nt
    Moderator Programowanie

    WYSZUKAJ.PIONOWO, zdaje się, nie działa na zamkniętych plikach. Formułę masz źle zapisaną, ale to nie ma znaczenia.

    Funkcja KOMÓRKA zwróci informacje o pliku, w którym jest formuła (Thisworkbook), drugi argument jest zbędny.

    Jakimś wyjściem byłoby zapisanie zawartości obu kolumn (1 i 7 jak wynika z arg. VLOOKUP) do tablicy z wykorzystaniem ExecuteExcel4Makro z prawidłowymi argumentami (ścieżka+nazwa_piku+nazwa arkusza+adres komórki) i przeszukiwanie tablicy.

    0
  • #3 31 Sty 2014 15:15
    szarlich
    Poziom 6  

    Drugi argument to data ktora jest nazwą arkusza jak i folderu w którym są pliki. Tak je pogrupowałem ;).

    Vlookup jak najbardziej dziala z zamknietymi plikami ale potrzebuje pelnej sciezki do pliku wiec nici ze sklejaniem sciezki z funkcją indirect.

    Makro jakiego uzywam z funkcją pull wyglada tak:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Dziala super, ale 36 komorek w kolumnie liczy 90 sekund a ja mam cala tablice ;(

    Stworzylem tez takiego takie cos:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    chcialem zmusic macro do wklepania kolumny zgodnie z komorka w zmiennej d ale tez nici bo bierze zawsze komorke c2 tak jak Selection zaznaczam.

    Nie zdziwie sie jesli byloby to niemożliwe.

    0