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
ID tematu: 70226 Skopiuj do schowka Nie działa skrót klawiszowy do uruchomienia makra
Autor Wiadomość
eemadee
Świeżak


Wersja: Win Office 365
Posty: 2
Wysłany: 23-02-2021, 14:44   Nie działa skrót klawiszowy do uruchomienia makra

Cześć,

napisałem makro usuwające wszystkie filtry w tabelach:

Kod:

Sub Excel_Wyczysc_filtrowanie()

' Czyści założone filtry w całym skoroszycie

  Dim ws As Worksheet
    For Each ws In Worksheets
        If ws.AutoFilterMode Then
           ws.AutoFilter.ShowAllData
        End If
    Next ws
End Sub


Makro przechowuję w PERSONAL.XLSB - chcę żeby działało w każdym pliku.

Do makra przypisałem skrót klawiszowy: CTRL+SHIFT+X

Niestety po wciśnięciu jednocześnie 3 powyższych klawiszy makro nie uruchamia się, a excel wydaje dźwięk "ostrzegawczy".

Co ciekawe gdy ręcznie uruchomię makro to działa poprawnie. Dodałem również skrót do makra do wstążki, również działa poprawnie. Nie działa jedynie przypisywanie skrótu klawiszowego, próbowałem różne literki/skróty.

Gdy makro dodaję bezpośrednio do modules danego pliku excela to skrót działa poprawnie.

Proszę o poradę jak to naprawić.
  
ID posta: 400893 Skopiuj do schowka
 
 
zorroz
Exceloholic


Pomógł: 15 razy
Posty: 212
Wysłany: 23-02-2021, 15:24   

Może taki sam skrót dodałeś wcześniej do innego makra.
ID posta: 400899 Skopiuj do schowka
 
 
eemadee
Świeżak


Wersja: Win Office 365
Posty: 2
Wysłany: 23-02-2021, 17:16   

Wszystkie makra przejrzane, skrót nie jest powtórzony. Próbowałem zmienić skrót na inny i dalej makro nie startowało.
ID posta: 400919 Skopiuj do schowka
 
 
Rafał B.
Exceloholic



Wersja: Win Office 2016
Pomógł: 33 razy
Posty: 232
Wysłany: 23-02-2021, 18:34   

Abstrahując od problemu nigdy nie stosuj referencji implicite poza itemami w kolekcjach, a unikniesz wielu kłopotów w przyszłości.

Do jakiej kolekcji Worksheets odnosisz się pisząc:
Kod:
For Each ws In Worksheets
:?:
Pewnie chciałbyś iterować po:
Kod:
For Each ws In ActiveWorkbook.Worksheets

Być może kod próbuje odpalić się w ThisWorkbook.Worksheets i dlatego coś mu nie pasuje (chociaż analogicznie do Range powinno być raczej ActiveWorkbook i pewnie tak jest, a przyczyna problemu rzeczywiście inna*). Ale niezaleźnie czy była to przyczyna błędu- zawsze staraj się stosować pełne kwalifikacje, żeby VBA dokładnie wiedziało czym ma manipulować, a nie zgadywało za nas.

-------------------
*nie mam Excela pod ręką, ale zawsze możesz sprawdzić zawierając w makrze:
Kod:
Debug.Print Worksheets.Parent.name

rezultat pojawi się w okienku VBE Immediate.
_________________
Jest niemal niemożliwe nauczenie dobrego programowania uczniów, którzy byli narażeni na kontakt z BASIC: jako potencjalni programiści są okaleczeni, bez nadziei na poprawę. (Edsger Dijkstra, pionier informatyki).
Po części dotyczy również VBA.
  
ID posta: 400921 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie 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