logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[Rozwiązano] Makro VBA zamyka plik Rejestr po wykonaniu operacji - dlaczego?

kocur877 24 Maj 2020 13:01 2106 13
REKLAMA
  • #1 18714438
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    Witam wszystkich,
    mam drobny problem, mam pewne makro które ma za zadanie zapisac istniejący plik, przejść do drugiego pliku "Rejestr", w Rejestrze odszukać konkretny numer, w linijce z konkretnym numerem zmienić wartość jednej z komórek, oraz na końcu zamknąć plik z którego zostało uruchomione makro. I wszystko działa do chwili aż makro nie zamknie tego pliku z którego zostało uruchomione, po tym jak tamten plik zostaje zamknięty to w pliku Rejestr wyskakuje jakiś błąd i Rejestr zostaje zamknięty. Nie wiem o co chodzi gdy usunąłem linijke zamykającą plik to wszystko działa ale zależy mi na tym aby plik był zamykany z automatu. Wstawiam poniżej moje makro pewnie znajdziecie w nim błędy:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 18714614
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    kocur877 napisał:
    po tym jak tamten plik zostaje zamknięty to w pliku Rejestr wyskakuje jakiś błąd i Rejestr zostaje zamknięty

    Pomijając budowę tego makra jaki to jest błąd?
  • REKLAMA
  • #3 18714838
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    Źle się wyraziłem, nie wyskakuje żaden komunikat z błędem makra, pojawia sie komunikat że pojawił sie niespotykany błąd i excel zostanie zamknięty. Wiem że makro zbudowane jest w sposób co najmniej niewłaściwy dlatego jeżeli masz jakieś uwagi a wiem że masz bo znasz sie na tym, to proszę podziel się nimi.
  • REKLAMA
  • #4 18715305
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    kocur877 napisał:
    nie wyskakuje żaden komunikat z błędem makra, pojawia sie komunikat że pojawił sie niespotykany błąd i excel zostanie zamknięty.

    Wiec to nie błąd vba
    kocur877 napisał:
    Windows(p & ".xlsm").Close

    Samo użycie zamknięcia nie ma wpływu na plik Rejestr
    Kilka rzeczy jest nie potrzebnych
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #5 18715393
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    no to nie rozumiem o co chodzi, bez tej linijki zamknięcia plik rejestr się nie sypie. Mam bardzo podobne mechanizmy w innych makrach które robią prawie że to samo i nie wysypują mi rejestru.
  • #6 18715474
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Jak możesz to załącz te pliki.
  • #7 18715622
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    Dodaje pliki.
    Działanie jest takie.
    1. W pliku rejestr wciskamy przycisk wygeneruj zlecenie cent, otwiera nam sie formatka zapisywana jako kolejny numer z rejestru.
    2. W uruchomionym zleceniu problem pojawia się w momencie gdy zostanie uruchomione makro o nazwie Zakończ zlecenie pozmianowe.
    3. Te makro ma za zadanie przejść do pliku rejestr skopiować pewne dane ze zlecenia, oraz zmienic status zlecenia w rejestrze a na końcu zamknąć aktualnie otwarte zlecenie i pozostać w rejestrze. I tak się dzieje ale w 80 % pojawia się błąd systemu który zamyka mi całego excela.
    Załączniki:
    • pliki.rar (129.93 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #8 18717412
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    Zauważyłem pewną zależność, w pliku zlecenie Cent znajduje się przycisk zmiana zlecenia, ma on za zadanie dodanie nowego arkusza i takie tam ale jedną z rzeczy które wykonuje to podmiana makra pod przyciskiem "zakończ zlecenie". I w tym momencie gdy wywołam makro o nazwie "zakończ zlecenie pozmianowe" rejestr na samym końcu wysypuje się, gdy wywołam to makro bezpośrednio z zakładki deweloper makro działa i nie wywala mi rejestru. Dlaczego ??? To jest dobra zagadka.
  • #9 18717773
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    kocur877 napisał:
    jedną z rzeczy które wykonuje to podmiana makra pod przyciskiem "zakończ zlecenie". I w tym momencie gdy wywołam makro o nazwie "zakończ zlecenie pozmianowe" rejestr na samym końcu wysypuje się, gdy wywołam to makro bezpośrednio z zakładki deweloper makro działa i nie wywala mi rejestru. Dlaczego ??? To jest dobra zagadka.

    Oba przyciski maja nazwę 'konieczlecenia' zmień nazwę w jednym z nich i zobacz .
  • #10 18718082
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    dokładnie chodzi o nazwy, siedzę i kombinuje, i tez to zauważyłem, zmieniałem nazwy i pomogło ale po kilku próbach znowu pojaiwa się ten sam błąd, znowu jak zmienię nazwę to działa kilka razy i wywala:/
  • #11 18718742
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Bywa, że ręczne przekopiowanie zawartości arkuszy, ich kodu, modułów, etc do nowego pliku "leczy" takie błędy.
  • Pomocny post
    #12 18719984
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Zobacz tak usuń te dwa przyciski zapisz zamknij i utwórz je na nowo z różnymi nazwami.
  • #13 18724181
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    Nic nie pomaga, kilka razy zadziała a nagle wywala. Nie warto z tym walczyć bo nie jest to aż takie strategiczne w moim projekcie. Ale mam inne pytanie, czy jest możliwość aby podczas uruchamiania pliku wyskoczyło okno logowania i w zależności jakiego użytkownika wybierzemy będziemy mieli możliwość pracy w naszym pliku na konkretnych zakresach danych ? Jak uruchomić okno podczas otwierania pliku to wiem ale jak przypisać do konkretnego wyboru zakres danych to już wyższa szkoła.
  • #14 18743527
    kocur877
    Poziom 3  
    Posty: 51
    Ocena: 8
    zrezygnowałem z tego rozwiązania.

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik zgłasza problem z makrem VBA, które po zapisaniu i zamknięciu pliku powoduje błąd w pliku "Rejestr", co skutkuje zamknięciem Excela. Mimo że makro działa poprawnie bez linii zamykającej plik, użytkownik chce, aby plik był automatycznie zamykany. W odpowiedziach zasugerowano, że problem może wynikać z konfliktu nazw przycisków w arkuszu oraz z nieprawidłowej konstrukcji makra. Użytkownik zauważył, że zmiana nazw przycisków czasami rozwiązuje problem, ale nie zawsze. Inne sugestie obejmowały ręczne skopiowanie zawartości arkuszy do nowego pliku oraz utworzenie przycisków na nowo. Użytkownik rozważa również dodanie okna logowania do pliku, aby ograniczyć dostęp do danych w zależności od wybranego użytkownika.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA