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/Procedura zdarzeniowa - Procedura zdarzeniowa a nadpisywanie pliku

kaliblunt 15 Gru 2014 20:19 768 6
  • #1 15 Gru 2014 20:19
    kaliblunt
    Poziom 10  

    Witam Wszystkich;

    Mam plik "x.xls" w którym za pomocą procedury zdarzeniowej "Workbook_Open" uruchamiam makro z Addin.xlam

    Zadaniem modułu jest otwarcie pliku "y.xls" a następnie nadpisanie nim pliku "x.xls". I tutaj zaczyna się problem, ponieważ po zamknięciu pliku "x.xls" celem go nadpisania, procedura zostaje zatrzymana.

    Będę wdzięczny za pomoc.

    0 6
  • #2 16 Gru 2014 09:08
    adamas_nt
    Moderator Programowanie

    Cześć
    Z jakiego powodu? Wyświetlany jest jakiś komunikat? W jakiej lokalizacji są pliki? W jaki sposób otwierane?
    Bez przedstawienia kodu, raczej niczego ci nie podpowiemy...

    0
  • #3 16 Gru 2014 18:23
    kaliblunt
    Poziom 10  

    Poniżej kod

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    I odpowiedzi na pytania:

    Z jakiego powodu? Wydaje się że jest to kwestia zamknięcia pliku w momencie wykonywania procedury.
    Wyświetlany jest jakiś komunikat? Brak ,po prostu procedura zostaje zatrzymana.
    W jakiej lokalizacji są pliki? Wszystkie (jak na razie), lokalnie
    W jaki sposób otwierane? Workbooks.Open

    0
  • #4 16 Gru 2014 20:15
    marek_s1
    Poziom 13  

    Dodaj obsługę błędów:

    po komentarzu w Sub dodaj:

    On error Goto er

    a przed End Sub dodaj:

    er:
    If Err.Number > 0 Then MsgBox(Err.Description)

    Uruchom makro i zobacz czy są jakieś błędy, jeśli będą to otrzymasz komunikat.


    Przyczyną zakończenia kodu jest zamknięcie arkusza x.xls, wtedy makra w nim zdefiniowane przestają działać.
    Rozwiązanie? Trzeci plik (sterujący) wykonujący właściwe działania tj. wykonanie aktualizacji, przepisanie pliku y na x.

    0
  • #5 17 Gru 2014 08:31
    kaliblunt
    Poziom 10  

    marek_s1 napisał:
    Rozwiązanie? Trzeci plik (sterujący) wykonujący właściwe działania tj. wykonanie aktualizacji, przepisanie pliku y na x.


    Dzięki
    Masz na myśli stworzenie pliku trzeciego "z.xls", z którego wywoływana będzie procedura na plikach "x/y.xls", który przez cały czas działania kodu będzie otwarty?

    0
  • #6 17 Gru 2014 08:59
    marek_s1
    Poziom 13  

    kaliblunt napisał:
    marek_s1 napisał:
    Rozwiązanie? Trzeci plik (sterujący) wykonujący właściwe działania tj. wykonanie aktualizacji, przepisanie pliku y na x.


    Dzięki
    Masz na myśli stworzenie pliku trzeciego "z.xls", z którego wywoływana będzie procedura na plikach "x/y.xls", który przez cały czas działania kodu będzie otwarty?


    Tak

    0
  • #7 17 Gru 2014 09:38
    kaliblunt
    Poziom 10  

    Myślałem o tym już wcześniej, jednak będzie to dodatkowa "plikologia" chciałbym tego uniknąć.

    Może jeszcze inne pomysły :|

    0