Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
Przesunięty przez: Artik
27-09-2019, 10:51
Menu kontekstowe przez CommandBars
Autor Wiadomość
BrunO 
ExcelSpec



Wersja: Win Office 365
Pomógł: 174 razy
Posty: 700
Wysłany: 17-03-2019, 22:48   Menu kontekstowe przez CommandBars

Próbuję wzbogacić moje formularze o menu kontekstowe. Znalazłem niby fajne gotowce, ale nie do końca rozumiem całość ich działania, więc próby dostosowania ich do moich potrzeb przynoszą taki sobie efekt.
Ale stwierdziłem, że załapałem wystarczająco, by zrobić to od podstaw po swojemu.
W klasie, która już wcześniej obsługiwała mi np. formatowanie dat dopisałem sobie obsługę menu kontekstowego. Docelowo działania mają być bardziej złożone, ale najpierw chciałem sprawdzić, czy cokolwiek zadziała.

Kod:
Private Sub txtBoxContext_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
   
    If Button = 2 Then
        ' right click
        Set currObject = getActCtrl(parentForm)
        MakePopUp

    End If

End Sub


Kod:
Sub MakePopUp()

'Remove any old instance of MyPopUp
On Error Resume Next
CommandBars("MyPopUp").Delete
On Error GoTo 0

Dim strTest As String
strTest = "KURŁA!"

'dodajemy przyciski
With CommandBars.Add(Name:="MyPopUp", Position:=msoBarPopup)

    With .Controls.Add(msoControlButton)
        .Caption = "&Kopiuj"
        .FaceId = 19
        .OnAction = "=CopyMacro()"
    End With

    With .Controls.Add(msoControlButton)
        .Caption = "&Wklej"
        .FaceId = 22
    End With

   With .Controls.Add(msoControlButton)
        .Caption = "Wy&tnij"
        .FaceId = 21
        .OnAction = "EdytujMacro"
    End With
 
    With .Controls.Add(msoControlButton)
        .Caption = "&Edytuj listę"
        .FaceId = 31
       
        .OnAction = "Debug.Print strTest"
    End With


End With


'odpalenie PopUa
Application.CommandBars("MyPopUp").ShowPopup

End Sub



Kod:
Sub EdytujMacro()

MsgBox "Aloha!"

End Sub


Oczywiście nie jest to kompletny kod, ale mam nadzieję, że pokazujący sedno problemu. Załącznika też na razie nie daję - wypreparowanie tylko tego co niezbędne wymagałoby ostrej dłubaniny, która dla rozwiązania problemu jest, mam nadzieję, zbędna.
Menu kontekstowe po prawokliku mi się pokazuje, ale wybranie jakiegokolwiek z przycisków nie daje żadnego efektu, żeby chociaż errorem sypnęło...

Pytanie brzmi więc, co mam zapisać po .OnAction, żeby odpalić np. EdytujMacro czy choćby Debug.Printa zrobić?
Bo chyba to, że trzymam ten kod w module klasy nie wpływa na działanie?
ID posta: 364415 Skopiuj do schowka
 
 
Tajan


Pomógł: 4646 razy
Posty: 10267
Wysłany: 18-03-2019, 07:38   

BrunO napisał/a:
Bo chyba to, że trzymam ten kod w module klasy nie wpływa na działanie?
Procedury obsługujące poszczególne opcje powinny być umieszczone w module standardowym.
ID posta: 364420 Skopiuj do schowka
 
 
BrunO 
ExcelSpec



Wersja: Win Office 365
Pomógł: 174 razy
Posty: 700
Wysłany: 18-03-2019, 10:16   

Czyli wiedziałem, że dzwoni, tylko nie wiedziałem w którym kościele :)
Dzięki, mogę walczyć dalej.
ID posta: 364426 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.marketingNET.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe