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] VBA excel jak przerobić to makro aby wybierało poszczególne zakresy z kolumny AQ

pawelus222 25 Maj 2018 08:33 714 13
REKLAMA
  • #1 17239398
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Witam, nie mam pomysłu jak przerobić to makro żeby pobierało jedynie wybrane zakresy danych z kolumny AQ, a nie całą kolumnę, np zakres AQ16:AQ22, AQ26:AQ30, AQ37:AQ39 itd bo zakresów będzie więcej w tej kolumnie. Proszę o pomoc. Poniżej makro:
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #2 17241067
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    A kto-co decyduje o ilości i rozmiarach tych zakresów? Są stałe, czy wynikają z czegoś?
  • #3 17241074
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Zakresy ja chę wpisać na stałe w kodzie VBA. Jeśli będę potrzebował zmiany to ja będę ją robił w kodzie Vba, czyli zakresy stałe mają być
  • Pomocny post
    #4 17241078
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Spróbuj tak
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    tylko to
    Sheets("Klient").Range("A18:H32").ClearContents
    musisz ustawić odpowiednio "daleko"

    A jeśli są tam gdzieś nagłówki "pomiędzy", to Np: Sheets("Klient").Range("A18:H32", "A38:H50").ClearContents
  • REKLAMA
  • #5 17241079
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    ok, działa dziękuję za pomoc. Jeszcze jedno pytanie, czy jest możliwość napisania makra które po załóżmy 30 uruchomieniach arkusza wyświetla komunikat "wykorzystałeś ilość uruchomień" i zamyka arkusz? Lub to samo robi na podstawie daty?Jak takie makro napisać?
  • REKLAMA
  • #6 17241082
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    To bardzo proste do zrealizowania. W Workbooks_Open piszesz kod, w dodatkowym arkuszu z argumentem xlSheetVeryHidden przechowujesz wartości.
    Niestety, takie "zabezpieczenie" równie łatwo złamać, jak napisać ;) Np wystarczy otworzyć plik z wyłączoną obsługą makr, cofnąć datę w komputerze, albo otwierać zawsze kopię oryginału. Userzy mają niesamowitą "inwencję twórczą" :)
  • #7 17241091
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    ok rozumiem, ale jeśli zrobimy instalkę która zawiera arkusz oraz dopisuje w rejestrze odpowiednie linijki na podstawie których sprawdza ilość uruchomień arkusza bądź datę do której ma działać to trudniejsze do złamania. Jakby wyglądało przykładowe makro tak jak Ty napisałeś wyżej?
  • #8 17241095
    adamas_nt
    VIP Zasłużony dla elektroda
    Posty: 5320
    Pomógł: 1508
    Ocena: 659
    Pomysł wart przemyślenia... Trochę Tutaj na ten temat.

    Tylko jak to ukryć przed oczami, skoro usunięcie hasła VBA, to 5 min "googlowania" :(
  • #9 17241310
    lanzul
    Poziom 30  
    Posty: 1023
    Pomógł: 199
    Ocena: 123
    Można by wypróbować tego typu rozwiązania:
    Link
    ale wszystko ma swoje wady i ograniczenia.
  • #10 17241465
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    adamas_nt powiedz jak byś to rozwiązał bez kombinowania z rejestrem. Tzn. pierwsza opcja to załóżmy jeśli arkusz był otwarty 10 razy to 11 raz się nie otworzy. Druga opcja jeśli mam y określoną datę to arkusz się nie włączy.
  • Pomocny post
    #11 17241512
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    @lanzul Odpada na pewno konwertowanie do exe-a bo wtedy skoroszyt będzie bez możliwości modyfikacji (tak jak read only)

    pawelus222 napisał:
    Tzn. pierwsza opcja to załóżmy jeśli arkusz był otwarty 10 razy to 11 raz się nie otworzy. Druga opcja jeśli mam y określoną datę to arkusz się nie włączy

    To tak jak adamas wspomniał Workbooks_Open ale łatwe do obejścia
  • REKLAMA
  • #12 17241538
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Tak wiem że w Workbooks_Open tylko jak ma to wyglądać?
  • #13 17241545
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    pawelus222 napisał:
    Tak wiem że w Workbooks_Open tylko jak ma to wyglądać?

    taki przykład (zamykaj otwieraj patrz a1)
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • #14 17242640
    pawelus222
    Poziom 4  
    Posty: 367
    Ocena: 20
    Dzięki za pomoc

Podsumowanie tematu

✨ Użytkownik poszukiwał pomocy w przerobieniu makra VBA w Excelu, aby mogło ono przetwarzać wybrane zakresy danych z kolumny AQ, zamiast całej kolumny. Odpowiedzi sugerowały użycie tablicy do zdefiniowania stałych zakresów, co pozwoliło na iterację przez te zakresy i kopiowanie wartości do arkusza "Klient". Użytkownik uzyskał również pomoc w kwestii ograniczenia liczby uruchomień arkusza oraz wprowadzenia zabezpieczeń, jednak zauważono, że takie metody mogą być łatwe do obejścia. Wskazówki obejmowały użycie zdarzeń Workbook_Open oraz przechowywanie liczby uruchomień w komórkach arkusza.
Wygenerowane przez model językowy.
REKLAMA