Witam
Mały problem na jednym z moich makr.
Mam formularz użytkownika, który wyskakuje i prosi o dokonanie wyboru twarzy lub krawędzi.
Ręka kodu makra:
UserFormSelectFace.Show vbModeless
CoincidentsCtresWindows "SOLIDWORKS", UserFormSelectFace.Caption, True
Dopóki wybór nie zostanie dokonany, makro będzie kontynuowane. Po tej stronie nie ma obaw
Problem wynika z przycisku anulowania, ponieważ jeśli go naciśniesz, wyjdziesz z formularza użytkownika, ale ciągłe makro i błędy (ponieważ nie dokonano wyboru)
Próbowałem umieścić to w formularzu użytkownika:
Private Sub BoutonCancel_Click()
Msgbox "TEST"
End
End Sub
Ale po naciśnięciu krzyżyka anuluj, taki sam wynik jak poprzednio (brak msgbox " TEST " i makro kontynuuje i błędy).
Masz jakiś pomysł na przyczynę tej awarii? Nie rozumiem, jak wywołać zdarzenie za pomocą tego przycisku anulowania.
Witam
Dziwię się normalnie, jeśli nie ma funkcji ukrywania formularza użytkownika, naciśnięcie przycisku anulowania powinno przejść przez msgbox i pozostawić formularz wyświetlony.
Z drugiej strony, kiedy mówisz, że makro jest kontynuowane, co dokładnie robi z wyświetlonym formularzem? Może to się stamtąd bierze
@Cyril_f Ja też mam
Unload UserFormSelectFace
trochę poniżej w moim kodzie, po zaznaczeniu wyboru. Zapomniałem o tym!
Z drugiej strony, dodając to w formularzu użytkownika, wydaje się, że spełnia swoje zadanie:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = vbFormControlMenu Then
MsgBox "Macro interrompue"
End
End If
' If CloseMode = vbFormControlMenu Then Cancel = 1
End Sub
QueryClose to naciśnięcie na krzyżyku (możesz nawet zablokować zamknięcie, aby zmusić Cię do przejścia przez przyciski Ok i Anuluj).
Tak, to właśnie zobaczyłem z kodem, który dostałem.
Skomentowałem linijkę:
If CloseMode = vbFormControlMenu Then Cancel = 1
Co skutecznie zahamowało przycisk anulowania.
A potem zmieniłem go, aby umieścić mój komunikat ostrzegawczy i koniec.
Z tego, co rozumiem, BoutonCancel_Click() nie działa w Excelu (w przeciwieństwie do Excela)
Musi być w oprogramowaniu, w przeciwieństwie do Excela 
W przypadku oprogramowania wymagany jest przycisk formularza, który anuluje i dodaje przetwarzanie.
Tak, zgadza się, w oprogramowaniu w przeciwieństwie do Excela!
Problem polega na tym, że niektórzy ludzie nacisnęli ten krzyżyk, aby wyjść z makra i że kod nie przerwał i przeszedł w tryb debugowania po jednym lub więcej błędach, więc zadzwonił do mnie, aby dowiedzieć się dlaczego!
To powinno rozwiązać mój problem!
1 polubienie