• Zapisz się do newslettera, aby otrzymywać powiadomienia o nowościach na blogu
    Zapisując się, wyrażasz zgodę na przesyłanie Ci informacji o nowościach na tym blogu. Zgodę możesz w każdej chwili wycofać (szczegóły).

Graficzne przyciski uruchamiające makra

Czyli prosty sposób na skuteczną komunikację z użytkownikiem

Makra możemy wywoływać na wiele sposobów. Z części z tych sposobów korzystamy na etapie tworzenia kodu, niektóre dzieją się same (zdarzenia), a inne – mają być wygodne dla użytkownika. Do tych z pewnością należą skróty klawiszowe i… przyciski. Zazwyczaj korzystamy z formantów formularza (pisałam o tym tutaj). Metody super, bo działają.

Jeśli jednak chcesz pójść o krok dalej (a zakładam, że skoro czytasz ten artykuł, to chcesz ;)), warto zamiast zwykłego przycisku z napisem (np.: Drukuj), użyć przycisku graficznego. Jest to o tyle fajna metoda, że użytkownik nie musi się wczytywać w tekst na przycisku (a takie wczytywanie jest to szczególnie uciążliwe, gdzie przycisków jest kilka!), tylko rzuca okiem na grafikę i od razu wie co robi dany przycisk.

Przykład:

 

Najlepsze jest to, że takie graficzny przycisk zrobimy od początku do końca sami, bez jakichś specjalnych umiejętności – cały czas będziemy korzystać z wbudowanych możliwości Excela. Nie musimy angażować grafika komputerowego :).

Czytaj dalej

Nazwy arkuszy na liście rozwijanej, generowanej automatycznie

Czyli zdarzenie arkusza tworzące listę arkuszy

Zadanie na dziś to stworzenie listy rozwijanej, zawierającej nazwy arkuszy w pliku. Powiedzmy, że oddziały naszego sklepu są w różnych miastach, każde miasto ma swój arkusz. My chcemy do głównego arkusza pobrać sumę sprzedaży z wybranego miasta. Interesujące nas miasto (arkusz) chcemy wybrać z listy rozwijanej, i na podstawie naszego wyboru ma się obliczyć suma sprzedaży z tego miast. O tak:

Jak już będziemy mieli nazwę arkusza to dalej pikuś – kiedyś już to opisywałam. Natomiast samo uzupełnienie listy – tutaj bez VBA się nie obejdzie – będą pętle, liczniki i inne bajerki, więc do dzieła!

Czytaj dalej

Zaproszenie na WEBINAR: Nagrywanie makr – wstęp

Zapraszam Cię na bezpłatny webinar Nagrywanie makr – wstęp. Na webinarze wkroczymy w cudowny świat VBA: pierwszym przystankiem będzie nagrywanie makr. Pokażę Ci, że nagrywając makra można stworzyć rozwiązania dynamiczne, niezależne od rozmiaru zakresów danych. Wystarczy znać możliwości… Excela! Co się da nagrać, czego nie, jak sobie usprawnić żmudną pracę dzięki nagranym makrom – oto czym będziemy się zajmować.

Webinar odbył się 26 czerwca 2019 roku na żywo. Jego nagranie można kupić tutaj (39 zł). Do webinaru dołączony jest komplet plików excelowych i notatka PDF

Do zobaczenia na kolejnym webinarze!

 

Treść nagłówka lub stopki na wydruku pobierana z komórki

Czyli dynamiczny nagłówek lub stopka

Dziś zadanie będzie proste – chcemy, aby tekst z komórki pojawił się w nagłówku lub w stopce na wydruku, np. niech to będzie nazwa klienta, dla którego drukujemy ofertę czy jakąś informację. Nie chce nam się zmieniać wartości bezpośrednio w nagłówku/stopce, tylko niech pobiera się ona z komórki (a ta przecież może być uzupełniana przez formułę, niekoniecznie przez nas). O tak:

Formatka

Użyjemy do tego zdarzenia skoroszytu, którego jeszcze na blogu nie pokazywałam…

Czytaj dalej

Korespondencja seryjna generująca oddzielne PDF-y

Czyli tworzenie wielu PDF-ów z jednej formatki

Podobny temat kiedyś już poruszałam na blogu, natomiast chodziło o stworzenie oddzielnych arkuszy dla pracowników, których informujemy o podwyżce. Tym razem też będziemy informować pracowników o podwyżce, natomiast dla każdego wygenerujemy oddzielny PDF z tą informacją. O tak:

Tylko troszkę zmodyfikujemy kod, który pokazywałam tutaj. Jedziemy!

Czytaj dalej

Dopisz dane do tabeli w chronionym arkuszu

Czyli auto-rozszerzanie tabeli…

Niby prosta rzecz: mamy chroniony arkusz, w nim obiekt tabela. Chcemy ją oczywiście uzupełniać i oczekujemy, że, jak to ma w zwyczaju tabela, powiększy się ona o dopisane poniżej niej dane.

A tu ZONK! Dane może i się dopisują (zakładając, że te komórki są odblokowane), ale tabela nie powiększa się w chronionym arkuszu!!!

Tak niestety się dzieje…

W tym artykule pospieszę na ratunek (koślawy co prawda – wolałabym, żeby tabele po prosu DZIAŁAŁY w chronionym arkuszu!). Pokażę makro, które spowoduje, że gdy user dopisze nowe dane bezpośrednio pod tabelą – powiększy się ona o ten dopisany rekord.

Dodatkowo, dzięki sprytnemu wykorzystaniu stylów sprawię też, że kopiowane formuły z kolumn obliczeniowych będą chronione, natomiast użytkownik nadal będzie mógł korzystać z list rozwijanych i wpisywać dane w odpowiednie kolumny tabeli.

Efekt będzie następujący:

Jedziemy!

Czytaj dalej

Zapis nowej wersji pliku z kolejnym numerem w nazwie (VBA)

Czyli krótko o prostym wersjonowaniu plików

W jednym z poprzednich artykułów pokazałam sposób na to, aby podczas zamykania pliku, zapisywał się on pod nazwą wskazaną w komórce. Chodziło o to, aby mieć cały czas jeden plik, tylko z inną nazwą. Dzisiaj natomiast skoncentruję się na tym, aby tworzyć kolejne wersje plików, każdy z kolejnym numerem. Użytkownik będzie decydował o tym, jak ma się nazywać plik (jakie słowo kluczowe ma zawierać), a makro będzie automatycznie nadawało kolejny numer.

Poprzednie pliki – wcześniejsze wersje – zostaną na dysku (nie będą kasowane).

Dodatkowo, to użytkownik będzie uruchamiał makro, czyli decydował o tym, kiedy nowa wersja ma zostać stworzona. Oczywiście, jeśli chcesz, aby takie wersjonowanie działo się za każdym razem, gdy zamkniemy plik – kod trzeba będzie umieścić wewnątrz zdarzenia BeforeClose, tak, jak w poprzednim artykule.

Nasze makro będzie potrzebowało do swojego działania 2 komórek, najlepiej umieszczonych w roboczym arkuszu. Np. tak:

Formatka

  • Słowo kluczowe, czyli takie, jakie ma wystąpić w nazwie pliku uzupełnia użytkownik. Na powyższej formatce jest ono w komórce C3, którą nazwałam Komorka.
  • Numer wersji, jest uzupełniane przez makro. U mnie jest to komórka C4, którą nazwałam Numer.

Zaczynamy!

Czytaj dalej

Archiwizuj wybrane rekordy tabeli (VBA)

Czyli jak makra mogą ułatwić nam życie

Często (jak nie zawsze!), gdy wykonujemy powtarzającą się czynność, zaczyna nam się ona nużyć i denerwuje nas, że ją po raz kolejny wykonujemy. I to niezależnie od tego, czy jest to bardzo prosta czynność, czy skomplikowana. Powiem wręcz tak: im łatwiejsza ta czynność, tym bardziej zaczyna nas denerwować i chcemy, żeby działa się sama. I tak np., gdy chcemy piszemy formułę, którą potem chcemy skopiować, po zatwierdzeniu jej Enterem – zaznaczenie schodzi do komórki niżej. Aby więc skopiować tę formułę – musimy kliknąć na komórkę wyżej, a dopiero potem kopiować. I to ponowne zaznaczanie, ten jeden dodatkowy klik, maksymalnie działa nam na nerwy! BTW, wystarczy zatwierdzić wpis Ctrl + Enter, to zostaniemy w tej samej komórce ;).

Podobnie jest z nieco bardziej skomplikowanymi tematami. Załóżmy, że prowadzimy rejestr obsługiwanych zamówień i chcemy archiwizować te zrealizowane. W danych mamy ostatnią kolumnę Wykonane (x) (H), w której wpisujemy znak “x”, co ma oznaczać, ze dane zamówienie jest już zrealizowane. Następnie rekord tego zamówienia kopiujemy do archiwum, czyli arkusza Hist w tym samym pliku (można byłoby się pokusić od razu o usuwanie takiego rekordu ;)). Dane kopiowane są do pierwszego wolnego wiersza.

Prosta czynność, która może zostać z łatwością zautomatyzowana. I tym właśnie zajmę się w tym artykule. Napiszę makro mające na celu archiwizowanie danych, czyli z tabeli w arkuszu Dane będzie kopiowało rekordy do pierwszego wolnego wiersza arkusza Hist. Efekt będzie taki:

Do dzieła!

Czytaj dalej

Zapisz plik pod nazwą wskazaną w komórce (VBA)

Czyli trochę o “zabijaniu” plików

Naszym celem jest to, aby za każdym razem, gdy będziemy zamykać plik – zapisywał się on pod nazwą wskazaną w jednej z komórek arkusza. Formatka zawiera więc tylko tę komórkę, która zawiera przyszłą nazwę pliku:

Formatka

Formatka

Komórkę tę warto nazwać, aby ułatwić namierzanie jej w kodzie VBA, bo taki właśnie będziemy pisać, aby rozwiązać to zadanie. Komórkę nazwałam jako “Komorka” i takiego odwołania do niej będę używała dalej (tutaj, w sekcji Nazywanie komórek, dowiesz się jak nazywać komórki).

Czytaj dalej

Zapisz plik jako PDF z dzisiejszą datą w nazwie (VBA)

Czyli trochę o tekstach i datach w VBA

Jakiś czas temu, w tym wpisie, opisywałam makro, które zapisywało plik Excela jako PDF w tym samym katalogu, co ten plik Excela. Samo zapisywanie jako PDF sztuką nie było – można to sobie nawet nagrać 😉 – jednak już określenie miejsca zapisu pliku stanowiło większe wyzwanie.

Dziś z kolei rozbuduję to makro tak, aby jeszcze zapisywało ów PDF z nazwą zawierającą dzisiejszą datę. Albo tylko miesiąc, jak kto woli – metoda będzie taka sama.

Wynik

Wynik

Czytaj dalej