• Zapisz się na newsletter i odbierz DARMOWY EBOOK: 10 najprzydatniejszych porad excelowych

Wielkość liter taka, jak w zdaniu (funkcja VBA)

Czyli robimy Worda z Excela – tym razem przy pomocy VBA

W poprzednim wpisie pokazywałam formułę, którą zamieniałam pierwszą literę w komórce na wielką, a pozostałe na małe. Używałam do tego formuły. Metoda super, bo działa 🙂 Natomiast dla mnie aż się prosi o usprawnienie. Zakładam bowiem, że będę jej potrzebowała częściej niż tylko raz i nie chce mi się jej pisać za każdym razem. Wolę wpisać funkcję, która to zrobi. Niestety, jak pisałam ostatnio, Excel takiej funkcji nie posiada…

…a skoro nie posiada, to trzeba ją samodzielnie napisać w VBA! I o tym będzie dzisiejszy film.

Czytaj dalej

Zawiadomienie pracowników o zmianie wynagrodzenia

Czyli korespondencja seryjna w Excelu

Wyobraźmy sobie sytuację, że chcemy wszystkim pracownikom dać 10% podwyżki (lubię sobie wyobrażać takie sytuacje:)). Wszystko cudownie, ale wymaga to od nas stworzenia całej masy papierków, między innymi pisemną informację dla pracownika o tym fakcie. Chcemy mieć taką informację wydrukowaną na papierze, no więc nic prostszego – idealna sytuacja dla korespondencji seryjnej w Wordzie. Ale… dostaliśmy od przełożonej jedyną słuszną formatkę, tylko, że… w Excelu. Ma być taka i koniec.

No i zonk: jak zrobić korespondencję seryjną w Excelu???

Na szczęście jest rozwiązanie, tylko wymaga napisania makra.

Wynik

Czytaj dalej

Zależna lista rozwijana z nieposortowanych danych – zdarzenie VBA

Czyli co zrobić, aby wpisy na liście zmieniały się dynamicznie, kiedy dopisujemy dane

Przyznam, że sporo namęczyłam się, aby znaleźć rozwiązanie tego problemu. Jak już jakieś wymyśliłam, obalałam je, bo nie do końca by działało… Wymyśliłam nawet funkcję tablicową napisaną w VBA, która idealnie zwracałaby tablicę z wynikami, problem jednak polegał na tym, że lista rozwijana potrzebuje ZAKRESU, a moja wyimaginowana funkcja dawała jej tablicę. Gdyby ta tablica znajdowała się w jakimś zakresie, to ok – wszystko pięknie by działało. Ale to byłoby bez sensu: musiałabym mieć tych zakresów wiele i to nie wiadomo jakich rozmiarów… Z kolei nie mogłam napisać funkcji zwracającej zakres, ponieważ zakresu de facto nigdzie nie mam… i tak w koło Macieju.

W końcu wymyśliłam rozwiązanie, które po prostu tworzy listę rozwijaną w momencie kliknięcia w komórkę, w której lista powinna się znajdować. To natomiast jest już procedura zdarzenia VBA, więc jest ciut bardziej skomplikowane. Na szczęście żeby działało, nie trzeba tego rozumieć – wystarczy przekopiować kod 😉

Czytaj dalej

Wyodrębnianie gramatury produktów z ich nazwy, czyli liczba z tekstu

Czyli wyodrębniania liczby z tekstu za pomocą funkcji w VBA

W dzisiejszym wpisie sytuacja, której nie życzę nikomu.Sytuacja, która jednak się zdarza i to jak się okazuje często… Najlepiej zobrazuje to screen poniżej:

Formatka

I chodzi oczywiście o wyciągnięcie gramatury z nazwy produktu. Jest wiele fajnych metod na wyciąganie liczb z tekstu, jednak ta sytuacja jest wyjątkowo wredna, ponieważ te liczby są różnej długości, w różnych miejscach w tekście, są często dziesiętne, a nawet jak są całkowite, to zapisywane np. tak: 1,0 zamiast po prostu 1. Próbowałam wielu sposobów na ten przypadek, ale po wielu nieprzespanych nocach stwierdziłam, że jednak VBA będzie tutaj najlepszym wyjściem. Zawsze staram się unikać funkcji tworzonych w VBA, ponieważ są wolniejsze, muszą być przechowywane w pliku z rozszerzeniem .xlsm lub .xlsb itp. Jednak tutaj stwierdziłam, że to najlepsze wyjście.

Czytaj dalej

VBA: wydruk na szerokość 1 kartki

Dopasuj wszystkie kolumny do jednej strony

Jeśli chcecie ustawić w Excelu, aby tabelka drukowana była na szerokości jednej strony – wystarczy to zrobić w ustawieniach strony albo od razu w podglądzie wydruku, wybierając opcję: Dopasuj wszystkie kolumny do jednej strony. Efekt będzie taki, że Excel trochę zmniejszy czcionkę naszej tabelki na wydruku (w arkuszu zostanie taka, jaka była), natomiast tabelka na szerokość zmieści się w 1 stronie. Powstaje jednak pytanie: jak to zrobić za pomocą makra? Jak nagramy makro z tym jednym ustawieniem – oto, co generuje Excel (musiałam zmniejszyć czcionkę, bo mi się nie zmieściło na ekranie!)::

Ta prosta opcja w nagranym makrze

Ta prosta opcja w nagranym makrze

Czytaj dalej

Wklej specjalnie wartości – skrót klawiszowy???

Ile razy dziennie wklejacie specjalnie wartości w Excelu? Pewnie co najmniej kilkanaście 🙂 Może łatwiej byłoby skrótem klawiszowym? A znacie skrót klawiszowy, który by to robił? Na pewno by się przydał, jednak twórcy Excela go nie przewidzieli… Trzeba więc sobie poradzić w inny sposób.

Miałam ten problem jak jeszcze pracowałam na Excelu 2003, gdzie nie było cudownych podpowiedzi przy wklejaniu tak, jak jest teraz. Wkleić specjalnie wartości potrzebowałam bardzo często i brak tego skrótu mi niesamowicie przeszkadzał. Wkurzyłam się więc i stworzyłam makro, które robi jedną prostą rzecz: wkleja specjalnie wartości do zaznaczonej komórki. Tyle. Rozwiązanie okazało się dla mnie zbawienne i nie umiem bez niego żyć. Jestem od niego wręcz uzależniona 🙂

W tym wpisie pokażę wam jak taki skrót zrobić i, co najważniejsze, co zrobić, aby był on dostępny w każdym otwartym przez nas pliku Excela. W tym celu stworzę dodatek do Excela i pokażę jak go zainstalować.

Czytaj dalej

Rozwiązanie mikołajkowego konkursu o makrach

W zeszłym tygodniu ruszył na blogu konkurs o makrach. Aby wziąć w nim udział wystarczyło odpowiedzieć na pytanie:

Po co chcesz się nauczyć pisać makra? Do czego będziesz ich używać?

Nagrodą były 2 wideokursy o pisaniu makr w Excelu.

Wasze odpowiedzi bardzo mi się podobały. Przyznam, że mego-trudno było mi wybrać zwycięzcę. Podawaliście zastosowania makr, w bardzo konkretny, a czasem nawet żartobliwy sposób 🙂 Myślę, że Wasze komentarze świetnie oddają ideę makr i obrazują, do czego można je wykorzystać. Cieszę, że wzięliście udział w konkursie i bardzo Wam za to dziękuję!!! Dla wszystkich zainteresowanych przypomnę, że mam kod rabatowy -15% na zakup kursów Videopoint do końca grudnia 2016 (obejmuje produkty z ceną powyżej 30 zł). Kod to MalinowyExcel.

Ok, a teraz czas na zwycięzcę!

Czytaj dalej

Mikołajkowy konkurs z nagrodami o makrach (VBA)!

malinowyexcel-mikolajkowy-konkurs-o-makrachW czerwcu, kiedy ruszył konkurs o tabelach przestawnych,  obiecałam, że będzie kolejny – tym razem o makrach. Makra… tak… temat gorący i jakże pożądany w dzisiejszych czasach, gdzie liczy się efektywność pracy i oszczędność czasu. Każdy chce robotę mieć zrobioną na już (albo na wczoraj) i to jak najmniejszym nakładem pracy. Zwłaszcza jeśli dotyczy to tematów powtarzalnych i… nudnych 😉 Makra właśnie po to są, aby tę pracę przyspieszać i ułatwiać, dzięki czemu pozwalają nam zająć się tematami naprawdę wymagającymi udziału człowieka. Brzmi pięknie, tylko jeszcze trzeba się tego nauczyć… Myślę, że dzisiejszy konkurs jest dla tych wszystkich, którzy własnie tego chcą (lub znają kogoś, kto by chciał – w końcu idą święta :)).

A teraz szczegóły konkursu…

Czytaj dalej

Uruchamianie makra za pomocą przycisku w arkuszu (VBA)

W poprzednim artykule opisywałam makro, które usuwa wiersze z pustymi danymi. Omawiałam też kilka sposobów na uruchomienie makra: skróty klawiszowe oraz ikonki na wstążce i pasku narzędzi. Były to sposoby, które sąwygodne dla twórcy makra. Klawisz F5 naciskamy, gdy jesteśmy w edytorze VBA, w kodzie. Użytkownik nie będzie z tego korzystał – gwarantuję 🙂 Ze skrótu klawiszowego Alt + F8 też nie skorzysta. Ze wstążki też nie – nie będzie wiedział, gdzie szukać. Trzeba mu trochę uprościć życie. Właśnie – jemu uprościć, a tobie – jako twórcy – zrobić trochę PR-u profesjonalisty 😉 Na szczęście istnieje jeszcze milion innych sposobów, żeby makro odpalić…

Na przykład przyciskiem z poziomu arkusza, co wygląda tak:

Przycisk w arkuszu uruchamiający makro

Przycisk w arkuszu uruchamiający makro

Efektownie, prawda? I nie wszyscy umieją to zrobić 😉 A ty po przeczytaniu tego artykułu będziesz umiał 🙂

Czytaj dalej

Usuwanie pustych wierszy w zakresie za pomocą makra (VBA)

Pomysł na ten artykuł podsunął mi jeden z czytelników mojego blogu – Szafran (już po raz drugi korzystam z pomysłu Szafrana – pierwszy wpis znajdziecie tutaj). Dzięki!

Załóżmy, że analizujemy sprzedaż produktów w konkretnych dniach. Docelowo chcemy stworzyć wykres obrazujący sprzedaż. Dane są w postaci: data, wynik sprzedaży (Szafran akurat miał inne dane, ale schemat był dokładnie taki sam). W weekendy nasza firma nie pracuje, ale dane dostajemy w takiej postaci:

Dane wejściowe

Dane wejściowe

Jak widać, wypisane są wszystkie daty z określonego zakresu, niezależnie od tego, czy danego dnia coś sprzedano. Jest to kiepskie rozwiązanie, zwłaszcza gdy chcemy zrobić np. wykres tej sprzedaży. Wyglądałby on tak:

MalinowyExcel-Usuwanie-pustych-wierszy-wykres-przed

Wykres utworzony z danych zawierających puste komórki

Mistrzostwo świata to to nie jest, przyznajcie sami. Widywałam lepsze wykresy…  Koniecznie trzeba usunąć puste wiersze. Można to zrobić ręcznie, co wystarczyłoby pewnie w przypadku małej liczby danych. Gdy jednak mamy do czynienia z większą tabelą, aby ułatwić sobie pracę, koniecznie trzeba napisać makro. W tym artykule opiszę właśnie takie makro – usunie ono puste wiersze z zakresu.

Czytaj dalej