konto usunięte

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Witam,

Czy ma ktoś pomysł jak rozwiązać poniższy problem:

Jeżeli plik excela odwołuje się do drugiego, zabezpieczonego hasłem pliku to czy da się zrobić tak żeby hasło "wpisywało" się automatycznie? - standardowo jest tak, że pokazuje się okno do wpisania hasła do pliku, ale jeżeli plików źródłowych jest więcej to robi się uciążliwe.

Dziękuję za wszelką pomoc.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

jeśli odwołujesz się do danych przez formuły, to producent nie wymyślił innego sposobu na ułatwienie tego sposobu autoryzacji.

konto usunięte

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

czyli nie ma żadnej opcji żeby wpisać jakoś hasło przez VBA?
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

No możesz otworzyć wszystkie powiązane pliki kodem z podaniem hasła, przed odpaleniem tego, który pobiera dane formułami. Ale czy to jest ułatwienie, skoro nie potrzebujesz ich otwierać, ale jedynie pobrać dane?

Workbooks.Open filename:=Plik.xls, password:=Haslo
Ten post został edytowany przez Autora dnia 27.05.15 o godzinie 22:40

konto usunięte

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

dziękuję za pomoc

konto usunięte

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Mój problem praktycznie roziwązuje poniższy kod -> przy uruchomieniu pliku który zbiera dane otwiera sie plik z haslem, nastepnie plik zbiorczy sie odswieza i plik z haslem zostaje zamkniety. Niestety plik z haslem zamyka sie za szybko i pojawia sie blad przy odswiezaniu -> jak zrobic zeby plik z haslem zamykal sie dopiero po odswiezeniu?

Workbooks.Open Filename:="plik.xlsx", Password:="xxx"
Workbooks("MKT_BUDŻET.xlsm").RefreshAll
Workbooks("Mkt_Sprzedażowy.xlsx").Close
Sławomir Sudoł

Sławomir Sudoł Kontroler Finansowy,
ESAB Sp. z o.o.
(Katowice)

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Proponuję po otwarciu pliku z hasłem dopisać poniższą linię aby zatrzymać na 10 sekund zanim uruchomi kolejną linię kodu:
Application.Wait(Now + TimeValue("0:00:10"))

oczywiście czas wg preferencji i doświadczeń z plikiem (zalecam więcej dla pewności).
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Tabele pobierające dane mają opcję aktualizacji natychmiastowej lub w tle.
Polecam ustawić tą pierwszą opcję.
Możesz też na ten czas wyłączyć zdarzenia i przeliczanie.

konto usunięte

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Sławomir S.:
Proponuję po otwarciu pliku z hasłem dopisać poniższą linię aby zatrzymać na 10 sekund zanim uruchomi kolejną linię kodu:
Application.Wait(Now + TimeValue("0:00:10"))

oczywiście czas wg preferencji i doświadczeń z plikiem (zalecam więcej dla pewności).

a czy da się jakoś zrobić (np. jakąś pętlą lub if-em), że plik zamyka się dopiero po odświeżeniu? tzn dopóki jest odświeżany nic się nie dzieje a dopiero po, przechodzi do kolejnej procedury?
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Odświeżenie natychmiastowe wymuszone kodem realizowane jest jeden po drugim.
Jeśli dane nie zostaną pobrane to będzie zwis, ale jeśli nie ma przeszkód to kod nie wykona się do czasu pobrania wszystkich danych.

.QueryTable.Refresh BackgroundQuery:=False
Tomasz Zarzyka

Tomasz Zarzyka X-mart, właściciel

Temat: Źródło danych w zabezpieczonym arkuszu - automatyczne...

Ja zawsze szukam niekonwencjonalnych rozwiązań.
Trzeba zacząć od tego, w jaki sposób masz zapisane dane w plikach, do których się odwołujesz?
Powinny być one umieszczone w tabelach, co pozwoli ci na automatyczne łącza.
Zakłądam że tak.
Więc możesz zrobic tak: zdejmujesz hasło dostępu do arkusza - ale żeby inni nie wiedzieli co w nim jest dane ukrywasz w arkuszach ukrytych (najlepiej z poziomu kodu VBA) - Efekt jest ten sam - ktoś jak otworzy plik widzi pusty arkusz (na marginesie i tak żadna z dostępnych opcji zabezpieczeń nie jest skuteczna).
dzięki temu nie masz zabezpieczonego arkusza i możesz się dowoływać bezpośrednio.
Rozwiazanie najlepsze to zastosowanie bazy SQL (SQL serwer albo np. SQlite) - wtedy nigdy nie dojdzie do zawieszenia.
Tutaj po części poruszyłeś temat tworzenia aplikacji w Excelu - czyli tworzysz strukturę, w której jedne pliki są warstwa prezentacyjną, natomiast wszystkie dane są zapisywane w bazach - i moga to byc pliki Excela zawierajaće odpowiednie tabele danych. Zapraszam na mój blog - tam umieściłem film o takim rozwiązaniu. Masz tam zapis i odczyt.

Następna dyskusja:

Definiowani danych do wykresu




Wyślij zaproszenie do