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 Kopiowanie danych bez otwierania pliku. ExecuteExcel4Macro/ADO

blacknigga 13 Lut 2017 10:10 984 6
  • #1 13 Lut 2017 10:10
    blacknigga
    Poziom 13  

    Witam,

    Mam makro, które zaciąga dane z 30 różnych exceli z jednej konkretnej zakładki. Chce to zrobić bez otwierania każdego pliku na dysku sieciowym, co sporo czasu zajmuje. Znalazłem w sieci przykładowe makra na podstawie ExecuteExcel4Macro oraz ADO, ale mam problem, gdyż pliki, które chce otworzyć są zahasłowane (niewiem gdzie w kodzie dać hasło) albo ExecuteExcel4Macro nie chce mi zadziałać - error: run-time error 1004

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    Drugi kod wzięty z Rod de Bruin działa gdy plik nie ma hasła.
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0 6
  • Pomocny post
    #2 13 Lut 2017 15:24
    Maciej Gonet
    Poziom 32  

    Ten pierwszy kod jednorazowo może odczytać 1 komórkę. Tu była próba odczytania całego zakresu od razu. Trzeba to zrobić w pętli.

    0
  • #3 13 Lut 2017 16:13
    blacknigga
    Poziom 13  

    Teraz i w tym prosi mnie o hasło, gdzie mogę wpisać w kod hasło?
    Pętle sobie zrobiłem, jednak nie do końca jestem przekonany czy jest to szybsze od otwarcia pliku i skopiowania obszaru (12kolumn x 15-30 wierszy)

    0
  • #4 13 Lut 2017 16:24
    Maciej Gonet
    Poziom 32  

    Generalnie, to nie jest metoda na pobieranie dużej ilości danych. Działa powoli, ja raczej skłaniałbym się do otwierania i zamykania pliku, a może wystarczą zwykłe odwołania? Nie wiem, co się zmienia w lokalizacji tych odczytywanych danych. Co do hasła, nie widzę możliwości podania hasła bez otwierania pliku, ale nie bardzo wiem też, jakie to hasło, czego ono dotyczy. Zwykle arkusz zabezpiecza się hasłem przed modyfikacją i wtedy jest "tylko do odczytu", ale do odczytu hasła nie trzeba. Jeśli plik jest tak zabezpieczony, że nawet odczytać się go nie da bez hasła, to obawiam się, że ta metoda jest nieprzydatna. Ale mogę się mylić, nie jestem w tym względzie guru.

    0
  • #5 13 Lut 2017 18:11
    clubs
    Poziom 31  

    Witam
    Tak jak kolega wyżej piszę czego dotyczy te hasło?

    0
  • #6 16 Lut 2017 07:40
    blacknigga
    Poziom 13  

    Hasło do otwarcia pliku, bez niego nie otworzy sie pliku. Mam obecnie około 30 plików do otwarcia z dysku sieciowego, z każdego pliku muszę skopiować dane z konkretnej zakładki

    Nie jest sporo danych, najwięcej czasu właśnie mi zajmuje otwarcie pliku, stąd chce przyśpieszyć ten proces. Są to dane dynamiczne, więc wydaje mi się, że ciężko by było odwołaniami ściągnąć dane z 30 plików by nie było przerw między nimi (ściągam dane do jednej zakładki)

    0
  • #7 16 Lut 2017 17:53
    clubs
    Poziom 31  

    Podaj ten kod który aktualnie używasz

    0