Redakcja

AutorzyPiotr Dynia, Mariusz Kowalski, Robert KuźmaRedaktor prowadzący Rafał JanusWydawca Monika Kijok

Opracowanie graficzne okładki Piotr Fedorczyk

Opracowanie graficzne Zbigniew KorzańskiKoordynator produkcji Mariusz JezierskiKorektaZespółISBN 978–83–269–3307-3Nakład: 1000 egz.Wydawnictwo Wiedza i Praktyka sp. z .o.o. 03-918 Warszawa, ul. Łotewska 9aTel. 22 518 29 29, faks 22 617 60 10, e-mail: rjanus@wip.plNIP: 526-19-92-256Numer KRS: 0000098264 – Sąd Rejonowy dla m.st. Warszawy, Sąd Gospodarczy XIII Wydział Gospodarczy Rejestrowy. Wysokość kapitału zakładowego: 200.000 złspan class="text_291">Skład i łamanie: Triograf Dariusz Kołacz Miller Druk Sp. z o. o.,03-301 Warszawa, ul. Jagiellońska 82, tel.: 22 614 17 67Copyright © by Wydawnictwo Wiedza i Praktyka sp. z o.o. Warszawa 2014„Porządkowanie danych za pomocą makr i formuł w Excelu” wraz z przysługującym Czytelnikom innymi elementami dostępnymi w subskrypcji (e-letter, strona WWW i inne) chronione są prawem autorskim. Przedruk materiałów opublikowanych w publikacji „Porządkowanie danych za pomocą makr i formuł w Excelu” oraz w innych dostępnych elementach subskrypcji – bez zgody wydawcy – jest zabroniony. Zakaz nie dotyczy cytowania publikacji z powołaniem się na źródło.Publikacja „Porządkowanie danych za pomocą makr i formuł w Excelu” została przygotowana z zachowaniem najwyższej staranności i wykorzystaniem wysokich kwalifikacji, wiedzy i doświadczenia autorów oraz konsultantów. Zaproponowane w książce „Porządkowanie danych za pomocą makr i formuł w Excelu” oraz w innych dostępnych elementach subskrypcji wskazówki, porady i interpretacje nie mają charakteru porady prawnej. Ich zastosowanie w konkretnym przypadku może wymagać dodatkowych, pogłębionych konsultacji. Publikowane rozwiązania nie mogą być traktowane jako oficjalne stanowisko organów i urzędów państwowych. W związku z powyższym redakcja nie może ponosić odpowiedzialności prawnej za zastosowanie zawartych w publikacji „Porządkowanie danych za pomocą makr i formuł w Excelu” lub w innych dostępntych elementach subskrypcji wskazówek, przykładów, informacji itp. do konkretnych przykładów.Wydawca nie odpowiada za treść zamieszczonej reklamy; ma prawo odmówić zamieszczenia reklamy, jeżeli jej treść lub forma są sprzeczne z linią programową bądź charakterem publikacji oraz interesem Wydawnictwa Wiedza i Praktyka.

Wstęp

Typowym wyzwaniem podczas pracy z Excelem jest uporządkowanie da- nych i doprowadzenie ich do postaci, w której nadają się do właściwej obróbki. Taka sytuacja zdarza się bardzo często przy importowaniu danych z zewnętrznych źródeł, ale także, gdy przychodzi analizować tabele zapro- jektowane przez współpracowników. W wielu przypadkach porządkowa- nie danych czy przebudowa tabel wiążą się ze żmudnymi i czasochłon- nymi operacjami. Niniejsza książka prezentuje wiele rozwiązań, dzięki którym uprościsz te niewdzięczne zadania i ograniczysz do minimum czas potrzebny na ich wykonanie.

Użytkownicy poszukują w Excelu sposobów, które ułatwiłyby pracę, np. zamieniały liczby rzymskie na arabskie, zaznaczyły puste wiersze, auto- matyzowały seryjne wydruki czy kopiowały za jednym razem dany arkusz określoną liczbę razy. Niestety czasami czeka nas rozczarowanie, ponie- waż Excel nie oferuje takich poleceń i te operacje trzeba wykonać krok po kroku. Pochłania to czas i jest źródłem wielu błędów, np. użytkownik może zaznaczyć wiersz, w którym były ukryte ważne dane.

Od teraz nie będziesz już tracić niepotrzebnie czasu i nerwów na takie zadania. W tej książce pokazujemy, jak napisać makra, które bezbłędnie wykonają żmudne zadania. Poznasz 20 makr, które nie mają swoich odpo- wiedników w poleceniach Excela i na pewno będziesz mieć okazję z nich skorzystać w pracy ze swoimi skoroszytami. Ponadto dowiesz się, gdzie przechowywać makra, jak je uruchamiać, a także jak dostosować opisane narzędzia do swoich potrzeb.

Sprawdzanie poprawności wprowadzanych danych

Budujemy niekiedy w Excelu szablony zestawień, które później będą wypełniane przez innych użytkowników. Poza wpisaniem nagłów- ków kolumn/wierszy czy ustawieniem kolorystyki określamy również ograniczenia wprowadzanych liczb i dat. Ciekawym udoskonaleniem takich szablonów może być rzadko stosowane ograniczenie możliwości wprowadzania danych, w zależności od zawartości innych komórek

WPROWADZANIE DANYCH Z OGRANICZENIAMI

Potrzeba blokowania komórek czy określania popraw- nych wpisów niekiedy pojawi się w wielu zadaniach. W celu uniknięcia błędów w skoroszytach Excela moż- na ograniczyć możliwość wpisywania danych w taki sposób, aby zostały spełnione określone warunki. Takie działania będą wymuszały wprowadzanie poprawnych danych. Przykładowo o odpowiednich wartościach wy- nikających z obliczeń lub mieszczących się w zadanych przedziałach czy w odpowiednich formatach (np. aby w kolumnach z datami czy kwotami uniemożliwić wpi- sywanie tekstu, a tam, gdzie dozwolone jest jego wpro- wadzanie, określić długość, np. powyżej 10 znaków).

Jeżeli projektujemy szablon przeznaczony do rejestro- wania dokumentów potwierdzających transakcje sprze- daży (na przykład mający formę podobną do przedsta- wionego na rysunku 1), możemy ustawić mechanizm blokujący możliwość wprowadzenia nazwy firmy w przypadku wystawiania paragonu. Do ustawienia takiego ograniczenia wykorzystajmy narzędzie Spraw- dzanie poprawności.

Zaznaczamy komórkę D2.

Z menu Dane wybieramy polecenie Sprawdzanie poprawności (w Excelu 2007/2010: uaktywniamy kartę Dane i w grupie poleceń Narzędzia danych wskazujemy Poprawność danych).

Rys. 1. Rejestr transakcji

Przechodzimy do zakładki Ustawienia i w polu Do- zwolone wybieramy Niestandardowe (rys. 2).

W polu Formuła wpisujemy:

=(C2<>”Paragon”)

Rys. 2. Ustawienia sprawdzania poprawności danych

Komunikaty

Jeżeli chcemy, aby użytkownik był informowany o ograniczeniach tego pola, możemy zdefiniować komunikat, który będzie pojawiał się przy zaznacze- niu komórek objętych sprawdzaniem poprawności. W tym celu wybieramy zakładkę Komunikat wej- ściowy i wpisujemy odpowiedni tekst (rys. 3).

Rys. 3. Ustawienia treści komunikatu

Rys. 4. Ustawienia ostrzeżenia o błędzie

Możemy również określić, jaki komunikat będzie wyświetlany w przypadku próby wpisania niedozwolonych danych. W tym celu klikamy za- kładkę Ostrzeżenie o błędzie i wpisujemy odpowia- dający nam komunikat (rys. 4).

Po zatwierdzeniu przedstawionych ustawień pojawiać się będą komunikaty przedstawione na rysunku 5.

Rys. 5. Widok arkusza przy próbie wpisania niedozwolonej wartości

Zawartość komórki D2 skopiujmy do pozostałych w kolumnie D.

INNE ZASTOSOWANIA SPRAWDZANIA POPRAWNOŚCI DANYCH

W podobny sposób możemy wprowadzić inne ograni- czenia wprowadzania danych.

Ograniczenie wprowadzanych liczb mieszczących się w wyznaczonym przedziale

W polu Dozwolone wybieramy Pełna liczba lub

Dziesiętne.

Rys. 6. Wybór warunków sprawdzania poprawności danych

W polu Dane klikamy wymagany typ ograniczenia. Aby na przykład wyznaczyć granicę górną i dolną, klikamy opcję pomiędzy.

3. Wprowadzamy minimalną, maksymalną lub okre-

śloną wartość, która będzie dozwolona.

Rys. 7. Wpisywane liczby będą musiały mieścić się w przedziale

Ograniczenie wprowadzanych danych do określo- nych na liście

W polu Dozwolone wybieramy Lista.

Klikamy pole Źródło.

Wpisujemy wartości listy rozdzielone średnikami lub zaznaczamy komórki w arkuszu, a następnie na- ciskamy klawisz Enter.

Ograniczenie wprowadzanych danych do określo- nego przedziału czasowego

W polu Dozwolone wybieramy Data lub Godzina.

W polu Dane określamy typ ograniczenia.

Wprowadzamy początkową, końcową lub określoną datę albo godzinę, która będzie dozwolona.

Ograniczenie długości wprowadzanego tekstu

W polu Dozwolone wybieramy Długość tekstu.

W polu Dane wybieramy typ ograniczenia. Aby ze- zwolić na stosowanie pewnej maksymalnej liczby znaków, klikamy opcję mniejsze niż lub równe.

Wprowadzamy minimalną, maksymalną lub okre-

śloną długość tekstu.

Zarówno w tych przypadkach, jak i w opisanych we wstępie również możemy określić odpowiednie komu- nikaty i ostrzeżenia.

Rys. 8. Dozwolona długość tekstu

Warto zapamiętać!

Za pomocą narzędzia Sprawdzanie poprawności możemy łatwo wyeliminować błędy interpretacyjne czy literówki, często pojawiające się przy wprowa- dzaniu dużej partii danych.

Dzięki zastosowaniu reguł poprawności mamy w zasadzie zagwarantowane poprawne wpisanie da- nych z równoczesnym przedstawieniem informacji na temat ograniczeń, które zostały wprowadzone do szablonu.

Organizacja i porządkowanie danych za pomocą makr

Wiele razy poszukujemy w Excelu poleceń, które ułatwiłyby nam pracę, np. zaznaczyły puste wiersze czy skopiowały za jednym razem dany arkusz określoną liczbę razy. Niestety czasami czeka nas rozczaro- wanie, ponieważ program Excel nie ma takich poleceń. Jesteśmy zmusze- ni takie operacje wykonać krok po kroku, np. zaznaczać pojedyncze puste wiersze czy kilkanaście razy wykonywać tę samą operację kopiowania. Nie dość, że marnujemy czas na żmudne operacje, to jeszcze możemy popełnić błąd, np. zaznaczyć wiersz, w którym były ukryte ważne dane. Od teraz już nie będziemy tracić niepotrzebnie czasu i nerwów na takie zadania. W tym haśle sprawdzimy, jak napisać makra, które bezbłędnie wykonają takie operacje. Poznamy 20 makr, które nie mają swoich od- powiedników w poleceniach Excela i na pewno będziemy mieli okazję z nich skorzystać w pracy ze swoimi skoroszytami. Ponadto dowiemy się, gdzie przechowywać makra, jak je uruchamiać, a także jak dostosować opisane narzędzia do swoich potrzeb.

CZĘŚĆ I. WPROWADZENIE

JAK NAPISAĆ MAKRO

Makra to kod programowania napisany w języku Visual Basic, który pozwala na rozszerzenie funkcjonalności Excela oraz na automatyzację zadań. Na następnych stronach przedstawimy podstawowe informacje o tym, jak pisać, modyfikować i uruchamiać makra.

Aby napisać makro:

Otwieramy skoroszyt Excela, w którym chcemy wy- korzystywać makro, i wybieramy polecenie menu Narzędzia/Makro/Edytor Visual Basic (w Excelu 2007/2010: na karcie Deweloper, w grupie poleceń Kod klikamy Visual Basic), aby otworzyć Edytor Vi- sual Basic.

W efekcie pojawi się okno Edytora widoczne na rysun- ku 1.

Przed przystąpieniem do pisania kodu makr zalecane jest ustawienie dwóch pomocnych opcji. Wybieramy polecenie menu Tools/Option i w zakładce Editor za- znaczamy opcję Require Variable Declaration, a w polu Tab Width wpisujemy liczbę 2. Pierwsza z nich spowo- duje automatyczne wpisywanie instrukcji Option Expli- cit na początku każdego nowo tworzonego modułu kodu, co pozwoli uniknąć literówek. Druga zmniejsza wcięcie dla bloku instrukcji, dzięki czemu zmniejszy się szerokość kodu.

Wprowadzone zmiany będą dotyczyć wszystkich sko- roszytów. Makra w tej publikacji są pisane przy zastosowaniu obu opcji.

Rys. 1. Okno Edytora Visual Basic

Makra powinniśmy przechowywać w module standardowym, choć będą działać także, jeśli wpi- szemy je w każdym innym module.

Wybieramy polecenie menu Insert/Module, aby wstawić nowy moduł standardowy.

Rys. 2. Zalecane ustawienia Edytora Visual Basic

Rys. 3. Kod modułu standardowego po otwarciu

Pojawi się okno kodu modułu widoczne na rysunku 3. W oknie kodu, pod instrukcją Option Explicit wpisuje- my przykładowy kod makra widoczny na rysunku 4.

Rys. 4. Kod przykładowego makra

Po wpisaniu pierwszej linii zostanie automatycz- nie wpisana ostatnia linia makra. Uzupełniamy więc pozostałe instrukcje.

Przedstawione makro składa się z dwóch zmiennych o nazwach: nazwa i data, do których przypisywane są odpowiednio: nazwa użytkownika pakietu Office oraz aktualna data. Na końcu makra wyświetlana jest infor- macja o tym, kto i o której godzinie uruchomił makro.

Teraz możemy zamknąć okno Edytora Visual Basic lub wybrać polecenie menu File/Close and Return to Microsoft Excel.

JAK UTWORZYĆ MAKRO W SKOROSZYCIE MAKR OSOBISTYCH

W poprzednim rozdziale pokazaliśmy, jak napisać ma- kro wykorzystywane w skoroszycie, w którym zostało wstawione. W przypadku gdy chcemy używać tego sa- mego narzędzia w wielu plikach, to możemy umieścić je w skoroszycie makr osobistych. Zawsze ma on taką samą nazwę: Personal.xls (w Excelu 2007/2010: Perso- nal.xlsb) i przy uruchamianiu Excela jest zawsze otwie- rany, ale jako ukryty. Skoroszyt ten nie jest domyślnie dostępny w Excelu.

Aby go utworzyć:

Wybieramy polecenie menu Narzędzia/Makro/Zare- jestruj nowe makro (w Excelu 2007/2010: na karcie Deweloper, w grupie poleceń Kod klikamy Zareje- struj makro).

W oknie Rejestrowanie makra, w polu Przechowuj makro w wybieramy Skoroszyt makr osobistych i na- ciskamy OK.

Rys. 5. Rejestrowanie nowego makra w skoroszycie makr osobistych

Pojawi się pasek narzędzi Zatrzymaj rejestrowanie. Naciskamy na nim przycisk Zatrzymaj rejestrowa- nie (w Excelu 2007/2010: na karcie Deweloper, w grupie poleceń Kod wybieramy Zatrzymaj reje- strowanie).

Otwieramy Edytor Visual Basic. W okienku Project

– VBAProject, w drzewku projektów będzie widocz- ny skoroszyt Personal.xls (w Excelu 2007/2010: Personal.xlsb). Wskazujemy znak + po lewej stro- nie okna, aby rozwinąć projekt tego skoroszytu, a następnie klikamy dwukrotnie moduł Module1.

Rys. 6. Okienko drzewka projektów VBA ze skoroszytem Personal.xls

Zostanie otwarte okno kodu modułu z zarejestrowa- nym makrem. Usuwamy widoczny kod i wpisujemy kod swojego makra.

Wybieramy polecenie menu File/Save Personal.xls (w Excelu 2007/2010: Save Personal.xlsb), a na- stępnie zamykamy Edytor Visual Basic.

Jeśli będziemy chcieli utworzyć kolejne makro w skoroszycie makr osobistych, to postępujmy analogicznie, począwszy od kroku 4. Nie usuwaj- my kodu w kroku 5 i wpiszmy kolejne makra pod ostatnią linią. Pamiętajmy przy tym, że nie możemy w jednym module mieć dwóch tak samo nazwanych makr.

JAK UTWORZYĆ DODATEK ZAWIERAJĄCY MAKRA

Innym sposobem przechowywania makr wykorzysty- wanych przy wielu skoroszytach jest utworzenie dodatku z makrami.

Więcej znajdziesz w wersji pełnej publikacji

Tematy publikacji w pełnej wersji

Wstęp

Sprawdzanie poprawności wprowadzanych danych

Organizacja i porządkowanie danych za pomocą makr

Przygotowanie danych do analizy z wykorzystaniem funkcji tekstowych

Zmiana układu tabeli z wykorzystaniem formuł

Szybsze obliczenia dzięki podziałowi tabeli na zakresy

Dynamiczne sortowanie danych w Excelu

Automatyczne generowanie posortowanej kopi tabeli

Analiza długich list – funkcje bazy danych

Korespondencja seryjna w Office 2010 na przykładach

Automatyzacja seryjnych wydruków z wykorzystaniem makr

Ochrona wybranych zakresów komórek

Usprawnienie częstego filtrowania za pomocą makr