excelpogodzinach-logo
Jak policzyć arkusze w Excelu? - Excel Po Godzinach

Jak policzyć arkusze w Excelu?

Jeśli skoroszyt, nad którym obecnie pracujesz zawiera mnóstwo arkuszy i potrzebujesz znać ich dokładną liczbę, to albo możesz policzyć je w tradycyjny i czasochłonny sposób, albo możesz skorzystać z szybszej metody, którą przedstawiam w tym artykule.

Pomysł na ten tekst podsunął mi Maciej, którego serdecznie pozdrawiam. :)

W trakcie omawiania jednego z narzędzi, które przygotowałem w Excelu, zapytał mnie jak można szybko sprawdzić ile właściwie jest arkuszy w skoroszycie. Oczywiście, gdyby tych arkuszy było powiedzmy 5 czy 10, to zadanie ograniczyłoby się do policzenia wszystkich kart z nazwami arkuszy, które znaleźć można w dolnej części okna programu, tuż nad paskiem stanu.

Sytuacja komplikuje się, kiedy tych arkuszy jest zdecydowanie więcej np. 50, 100, albo i więcej. Wtedy tradycyjne metody są najzwyczajniej w świecie nieefektywne, czasochłonne i bardzo łatwo o pomyłkę.

Rozwiązanie na wyciągnięcie ręki

Jeśli zależy Ci na szybkim otrzymaniu precyzyjnej odpowiedzi, to musisz odwołać się do VBA (Visual Basic for Applications). Nie, nie musisz pisać bardzo rozbudowanych makr, żeby uzyskać wspomnianą informację. Wystarczy tylko, że wykonasz następujące kroki, aby osiągnąć zamierzony rezultat.

KROK 1: Użyj skrótu klawiaturowego Alt + F11, aby włączyć edytor VBA. Alternatywnie, wybierz kartę Deweloper, a następnie w grupie Kod kliknij polecenie Visual Basic.
 Jak policzyć arkusze w Excelu - Excel Po Godzinach

KROK 2: W edytorze VBA upewnij się, że wyświetla się okno Immediate. Jeśli nie jest widoczne, to użyj skrótu klawiaturowego Ctrl + G lub na pasku menu kliknij View, a potem Immediate Window.
 Jak policzyć arkusze w Excelu - Excel Po Godzinach

KROK 3: Aktywuj okno Immediate klikając w nie, a następnie wpisz polecenie ?Sheets.Count i naciśnij klawisz Enter.
 Jak policzyć arkusze w Excelu - Excel Po Godzinach

Gotowe! W kolejnej linii tego samego okna pojawi się liczba wszystkich arkuszy umieszczonych w bieżącym skoroszycie (u mnie jest ich 57).

Prawda, że łatwe?

Oczywiście, to nie jest jedyny sposób na poradzenie sobie z tym zadaniem. Tak naprawdę wszystko zależy od Twoich potrzeb, wiedzy i wyobraźni. :)

Opcja 1: Funkcja użytkownika

Uzyskanie liczby wszystkich arkuszy w skoroszycie możesz osiągnąć za pomocą zdefiniowanej przez Ciebie funkcji użytkownika. W takim przypadku rezultat zostanie wyświetlony w komórce arkusza, w której wpiszesz nazwę stworzonej funkcji.

Function IleArkuszy()
   IleArkuszy = Sheets.Count
End Function

Funkcja ta nie posiada żadnych argumentów, więc w komórce wpisujesz ją następująco: =IleArkuszy(), a w odpowiedzi otrzymujesz liczbę odpowiadającą ilości arkuszy w bieżącym skoroszycie.

Opcja 2: Makro – wersja podstawowa

Tym razem proponuję inne rozwiązanie, które zamiast wpisania do komórki funkcji użytkownika będzie wymagało uruchomienia krótkiej procedury. Kiedy to nastąpi, na ekranie wyświetlony zostanie komunikat (za pomocą polecenia MsgBox) zawierający predefiniowany tekst oraz liczbę arkuszy.

Sub IleArkuszyWSkoroszycie()
   MsgBox "Liczba arkuszy w bieżącym skoroszycie wynosi: " & Sheets.Count
End Sub

Jak widzisz, to nie jest nic skomplikowanego.
 Jak policzyć arkusze w Excelu - Excel Po Godzinach

W ogóle uważam, że nie warto bać się makr i języka VBA. Wystarczy systematycznie ćwiczyć i eksperymentować, do czego gorąco Cię zachęcam, a już po jakimś czasie zaczniesz tworzyć swoje pierwsze makra, które być może ułatwią wykonywanie codziennych zadań w pracy.

Teraz pójdźmy o krok dalej i zobaczmy jakie przykładowe informacje jesteś jeszcze w stanie uzyskać licząc arkusze w skoroszycie.

Opcja 3: Makro – wersja rozszerzona

Rozbuduj dotychczasowe makro w taki sposób, aby pokazywało nie tylko liczbę wszystkich arkuszy w skoroszycie, ale również ile z nich jest widocznych, a ile ukrytych i w jaki sposób. Kod nowej procedury będzie wyglądać następująco:

Sub IleArkuszyWSkoroszycie()
Dim i As Integer, j As Integer, k As Integer, l As Integer
For i = 1 To Sheets.Count
   Select Case Sheets(i).Visible
      Case True
         j = j + 1
      Case xlSheetHidden
         k = k + 1
      Case xlSheetVeryHidden
         l = l + 1
   End Select
Next i
MsgBox "Liczba arkuszy w bieżącym skoroszycie wynosi: " & Sheets.Count & _
vbNewLine & vbNewLine & "Arkuszy odkrytych: " & j & _
vbNewLine & "Arkuszy ukrytych: " & k & _
vbNewLine & "Arkuszy ""solidnie"" ukrytych: " & l
End Sub

Nie przerażaj się wielkością kodu. Tutaj naprawdę nie ma nic strasznego. :)

Na początku makra definiowane są zmienne i, j, k i l. Następnie zastosowanie znajduje pętla For – Next pozwalająca wykonać zestaw instrukcji dla każdego z arkuszy znajdujących się w skoroszycie.

W ramach tych instrukcji wykorzystywana jest również konstrukcja Select Case do sprawdzenia jaką wartość ma właściwość Visible każdego z arkuszy. Badane są trzy przypadki:
   True – arkusz jest odkryty i widoczny;
   xlSheetHidden – arkusz jest ukryty, ale można go odkryć z poziomu Excela;
   xlSheetVeryHidden – arkusz jest ukryty, nie będzie wyświetlany na liście arkuszy po kliknięciu opcji Odkryj w Excelu, można go odkryć tylko z poziomu edytora VBA, dlatego określany jest jako „solidnie” ukryty.

Za każdym razem, kiedy arkusz spełnia jeden z trzech warunków, wybrana zmienna j, k lub l ulega zwiększeniu o 1. W ten sposób „nabijamy” licznik każdej kategorii.

Działanie pętli For – Next zostanie zakończone kiedy instrukcje zostaną wykonane dla wszystkich arkuszy i wtedy nastąpi wyświetlenie komunikatu (użyte polecenie MsgBox) zawierającego informację o całkowitej liczbie arkuszy, jak również dzieląc ją na trzy wspomniane kategorie.
 Jak policzyć arkusze w Excelu - Excel Po Godzinach

Oczywiście możesz dalej rozwijać makro tworząc przykładowo listę nazw arkuszy w poszczególnych kategoriach, albo sortując je według liter alfabetu etc. To wszystko uzależnione będzie od Twoich potrzeb, bieżących lub przyszłych.

Mam nadzieję, że lektura niniejszego tekstu dobitnie pokazuje, że większość rzeczy w Excelu można wykonać mądrzej, szybciej, bez zbędnych nakładów pracy. Jednocześnie warto zainteresować się językiem VBA, który pozwala tworzyć makra „szyte na miarę”, ułatwiające codzienną pracę w arkuszu kalkulacyjnym. Tego typu automatyzacja pozwala zaoszczędzić sporo cennego czasu, który można przeznaczyć na realizację innych, ciekawszych tematów.

Podobał Ci się ten artykuł?

Jeśli tak, to dołącz do grona Czytelników bloga Excel Po Godzinach, którzy każdego tygodnia otrzymują sprawdzone porady, wskazówki oraz rozwiązania nietypowych problemów.

2 myśli na temat “Jak policzyć arkusze w Excelu?

  1. Dzień dobry p. Michale cieszę się, iż ponownie zaczął Pan pisać swoje ciekawe artykuły na temat Excela po dłuższej przerwie. Extra bardzo dobry jak zawsze omówiony temat i do tego pokazane rozwiązanie zagadnienia na różne sposoby, aby więcej takich art. ukazywały się w takim stylu pisania. Wszystko omówione krok po kroku. Jak dla mnie jeden z najlepszych blogów na temat Excela w Internecie jeszcze działający, gdzie zawsze można skorzystać z porad fachowca –praktyka.
    Pozdrawiam
    Jankesd

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *