czwartek, 31 lipca 2025

Excel VBA: Makro do sortowania danych według kolumny wskazanej przez użytkownika

🔍 Co robi to makro?

To makro pozwala użytkownikowi wpisać literę kolumny, według której dane mają zostać posortowane. Działa dynamicznie – czyli nie musisz modyfikować kodu za każdym razem. Idealne do plików z różnym układem kolumn.

📋 Kod VBA: każda linia w nowym wierszu

Sub SortujPoWybranejKolumnie()
  Dim ws As Worksheet
  Dim kolumnaLitera As String
  Dim kolumnaNr As Long
  Dim zakresDanych As Range

  Set ws = ActiveSheet

  kolumnaLitera = UCase(InputBox("Podaj literę kolumny, według której chcesz sortować:", "Sortowanie danych"))

  If kolumnaLitera = "" Then
    MsgBox "Nie wybrano kolumny. Makro zostało przerwane.", vbExclamation
    Exit Sub
  End If

  kolumnaNr = Range(kolumnaLitera & "1").Column

  Set zakresDanych = ws.Range("A1").CurrentRegion

  With ws.Sort
    .SortFields.Clear
    .SortFields.Add Key:=ws.Columns(kolumnaNr), _
      SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .SetRange zakresDanych
    .Header = xlYes
    .Apply
  End With

  MsgBox "Dane zostały posortowane według kolumny " & kolumnaLitera & ".", vbInformation
End Sub

🛠️ Jak działa to makro?

  1. Makro pyta użytkownika o literę kolumny (np. A, B, C).
  2. Zamienia ją na numer kolumny.
  3. Określa zakres danych (automatycznie).
  4. Sortuje dane rosnąco według wskazanej kolumny.

💡 Co możesz zmienić?

  • Aby sortować malejąco – zamień Order:=xlAscending na xlDescending.
  • Możesz dodać kolejne pytanie o kolejność sortowania (rosnąco/malejąco).
  • Zakres danych można zmienić z CurrentRegion na np. Range("A1:Z1000").

✅ Podsumowanie

To makro jest bardzo elastyczne i wygodne, jeśli pracujesz z dużą ilością danych w różnych układach. Działa bez potrzeby ręcznego filtrowania i można je szybko przypisać do przycisku lub skrótu klawiszowego.

Excel VBA: Makro do sortowania danych według kolumny (rosnąco lub malejąco)

🔍 Co robi to makro?

Makro automatycznie sortuje dane w aktywnym arkuszu na podstawie wybranej kolumny – zarówno rosnąco, jak i malejąco. Idealne do porządkowania list: klientów, faktur, dat, numerów zamówień itp.

📋 Kod VBA: sortowanie po kolumnie A (rosnąco)

Sub SortujPoKolumnieA() Dim ws As Worksheet Set ws = ActiveSheet With ws.Sort .SortFields.Clear .SortFields.Add Key:=Range("A2:A1000"), _ SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal .SetRange Range("A1:Z1000") .Header = xlYes .Apply End With MsgBox "Dane zostały posortowane według kolumny A (rosnąco).", vbInformation End Sub

🛠️ Jak działa to makro?

  • Range("A2:A1000") – to kolumna, według której sortujemy.
  • Range("A1:Z1000") – to cały zakres danych, który zostanie posortowany (możesz zmienić).
  • xlAscending – oznacza sortowanie rosnąco (zamień na xlDescending dla malejącego).
  • xlYes – oznacza, że dane mają nagłówki.

🧪 Co możesz zmienić?

  • Aby posortować po innej kolumnie, zmień "A2:A1000" na np. "C2:C1000".
  • Aby sortować malejąco, zmień Order:=xlAscending na Order:=xlDescending.
  • Zakres danych (np. A1:Z1000) dostosuj do swoich arkuszy.

✅ Jak uruchomić makro?

  1. Naciśnij ALT + F11, aby otworzyć edytor VBA.
  2. Wstaw nowy moduł: Wstaw → Moduł.
  3. Wklej powyższy kod.
  4. Zamknij edytor i uruchom makro: ALT + F8 → SortujPoKolumnieA.

🎯 Przykład zastosowania

Wyobraź sobie arkusz z listą faktur lub klientów, gdzie chcesz szybko posortować je według daty (kolumna A). Wystarczy jedno kliknięcie, by wszystko było uporządkowane bez ręcznego ustawiania filtrów.

✅ Podsumowanie

To makro przyspiesza codzienną pracę z danymi i eliminuje potrzebę ręcznego sortowania. Nadaje się zarówno do uporządkowania list, jak i przygotowywania gotowych zestawień lub raportów.

3 sposoby na wyszukiwanie danych w Excelu – nie tylko WYSZUKAJ.PIONOWO

🔍 Problem do rozwiązania

Chcesz znaleźć dane w tabeli na podstawie innej kolumny, np. znaleźć nazwisko klienta po jego ID lub cenę produktu po nazwie? Excel oferuje co najmniej 3 sposoby, aby to zrobić skutecznie — w zależności od Twojej wersji Excela i potrzeb.

🧪 Sposób 1: WYSZUKAJ.PIONOWO

=WYSZUKAJ.PIONOWO(D2; A2:B100; 2; FAŁSZ)

Opis:

  • D2 – wartość, której szukasz (np. ID klienta).
  • A2:B100 – zakres danych, w którym szukasz.
  • 2 – numer kolumny z wynikiem (tu: kolumna B).
  • FAŁSZ – dokładne dopasowanie.

Wada: Nie działa, jeśli kolumna z wynikiem jest na lewo od kolumny wyszukiwania.

🧪 Sposób 2: INDEKS + PODAJ.POZYCJĘ

=INDEKS(B2:B100; PODAJ.POZYCJĘ(D2; A2:A100; 0))

Opis:

  • A2:A100 – kolumna, w której Excel szuka wartości.
  • B2:B100 – kolumna, z której zwracana jest odpowiedź.
  • D2 – szukana wartość.

Zaleta: Może zwracać dane z lewej strony — czego nie potrafi WYSZUKAJ.PIONOWO.

🧪 Sposób 3: X.WYSZUKAJ (Excel 365)

=X.WYSZUKAJ(D2; A2:A100; B2:B100)

X.WYSZUKAJ to nowoczesna funkcja dostępna w Excelu 365.

  • D2 – wartość do znalezienia.
  • A2:A100 – gdzie szukać.
  • B2:B100 – co zwrócić, jeśli znajdzie dopasowanie.

Zaleta: Działa dynamicznie, bez potrzeby podawania numeru kolumny i obsługuje wyszukiwanie „w obie strony”.

✅ Podsumowanie

  • WYSZUKAJ.PIONOWO – dobry dla prostych układów tabel.
  • INDEKS + PODAJ.POZYCJĘ – elastyczne rozwiązanie dla bardziej zaawansowanych.
  • X.WYSZUKAJ – najbardziej nowoczesne, jeśli masz Excel 365.

Dzięki tym trzem podejściom jesteś w stanie dopasować sposób wyszukiwania do praktycznie każdego układu danych w Excelu.

3 sposoby na usuwanie duplikatów w Excelu — szybko i skutecznie

🔍 Problem do rozwiązania

Masz w Excelu powtarzające się dane i chcesz je usunąć? Niezależnie od tego, czy pracujesz z listą klientów, produktami czy danymi z importu — poniżej znajdziesz 3 skuteczne sposoby na pozbycie się duplikatów z arkusza.

🧪 Sposób 1: Narzędzie „Usuń duplikaty” (kliknięciem)

To najszybsza metoda dostępna w każdej wersji Excela:

  1. Zaznacz kolumnę lub cały zakres danych.
  2. Przejdź do zakładki Dane → Usuń duplikaty.
  3. Wybierz, które kolumny mają być porównywane i kliknij OK.

Zaleta: Szybkie, bez formuł. Wada: Modyfikuje dane bez możliwości cofnięcia, jeśli wcześniej nie zapiszesz pliku.

🧪 Sposób 2: Formuła z UNIKATOWE (Excel 365)

=UNIKATOWE(A2:A100)

Formuła ta tworzy nową listę z pominięciem duplikatów.

  • Wymaga Excela 365 lub 2021.
  • Wklej ją np. w komórce B2, a Excel wyświetli tylko unikalne wpisy z kolumny A.

Zaleta: Dynamiczna, nie modyfikuje oryginału. Wada: Niedostępna w starszych wersjach Excela.

🧪 Sposób 3: Tabela przestawna (dla analityków)

Tabela przestawna może służyć do wyodrębnienia unikalnych elementów:

  1. Zaznacz dane i wstaw tabelę przestawną (Wstaw → Tabela przestawna).
  2. Umieść interesującą Cię kolumnę w polu Wiersze.
  3. Tabela automatycznie pokaże tylko unikalne wpisy.

Zaleta: Nadaje się do grupowania i liczenia unikalnych wartości. Wada: Nie usuwa danych, a tylko je prezentuje.

✅ Podsumowanie

  • Sposób 1: najszybszy do usunięcia duplikatów w miejscu.
  • Sposób 2: idealny do dynamicznego filtrowania unikatów.
  • Sposób 3: najlepszy do analiz i zestawień bez naruszania źródła.

Wybierz metodę, która pasuje do Twojego stylu pracy i wersji Excela.

Excel: Jak zliczyć unikalne wartości w kolumnie?

🔍 Co robi ta formuła?

Ta formuła pozwala zliczyć, ile unikalnych (różnych) wartości znajduje się w danym zakresie – np. ilu masz różnych klientów, produktów czy kodów. Jest szczególnie przydatna przy analizie danych, raportach i sprawdzaniu powtórzeń.

📋 Krok po kroku: Formuła z opisem działania

=ILE.WIERSZY(UNIKATOWE(A2:A100))

Wymaga Excela 365 lub 2021+. W starszych wersjach ta funkcja nie jest dostępna.

🧠 Jak działa ta formuła?

  • UNIKATOWE(A2:A100) – tworzy listę unikalnych wartości z danego zakresu.
  • ILE.WIERSZY(...) – zlicza, ile elementów zawiera ta lista (czyli liczba unikalnych wpisów).

🛠️ Jak użyć tej formuły?

  1. W komórkach A2:A100 wprowadź dane (np. imiona, produkty, kody).
  2. W pustej komórce (np. B1) wklej formułę: =ILE.WIERSZY(UNIKATOWE(A2:A100))
  3. Excel zwróci liczbę unikalnych pozycji.

✅ Podsumowanie

To niezwykle prosta i skuteczna formuła do analizy danych, gdy chcesz wiedzieć, ile różnych wartości występuje w kolumnie. Idealna do sprawdzania duplikatów i raportów bez użycia tabel przestawnych czy Power Query.

Excel: Jak znaleźć ostatnią niepustą wartość w kolumnie?

🔍 Co robi ta formuła?

Ta formuła pozwala odczytać ostatnią niepustą wartość w kolumnie. Dzięki niej możesz automatycznie pobrać np. ostatnią datę wpisu, ostatni wynik, ostatni komentarz lub numer zamówienia. Nie wymaga VBA i działa w każdej wersji Excela.

📋 Krok po kroku: Formuła z opisem działania

=INDEKS(A:A; MAX(JEŻELI(A:A<>""; WIERSZ(A:A))))

Uwaga: jeśli używasz Excela 2019 lub starszego, musisz zatwierdzić tę formułę jako formułę tablicową, naciskając CTRL + SHIFT + ENTER.

🧠 Jak działa ta formuła?

  • A:A<>"" – sprawdza, które komórki w kolumnie A są niepuste.
  • JEŻELI(...; WIERSZ(A:A)) – dla każdej niepustej komórki zwraca numer jej wiersza.
  • MAX(...) – wybiera najwyższy numer wiersza, czyli ostatni niepusty wpis.
  • INDEKS(A:A; ...) – pobiera wartość z tego wiersza w kolumnie A.

🛠️ Jak użyć tej formuły?

  1. Wprowadź dane w kolumnie A (np. A2:A100).
  2. W pustej komórce (np. B1) wklej powyższą formułę.
  3. W Excelu 365 naciśnij Enter. W starszych wersjach: CTRL + SHIFT + ENTER.
  4. Excel zwróci wartość z ostatniej niepustej komórki w kolumnie A.

✅ Podsumowanie

To przydatna formuła, gdy chcesz dynamicznie pokazać ostatni wpis w kolumnie, np. najnowszy pomiar, ostatnią datę, ostatni status czy komentarz. Możesz dzięki niej automatyzować raporty bez pisania makr.

środa, 30 lipca 2025

Makro: Tworzenie kopii aktywnego arkusza z nową nazwą

🔍 Co robi to makro?

To makro tworzy kopię aktualnie aktywnego arkusza i automatycznie nadaje jej nazwę w formacie np. Raport_2025-07-30. Świetne do robienia kopii zapasowych, dziennych raportów lub duplikowania szablonów.

📋 Krok po kroku: Makro VBA z opisem

' Tworzenie kopii arkusza z nową nazwą
Sub KopiujArkuszZData()

  ' Zmienna pomocnicza z bieżącą datą
  Dim nowaNazwa As String
  nowaNazwa = "Raport_" & Format(Date, "yyyy-mm-dd")

  ' Kopiowanie aktywnego arkusza
  ActiveSheet.Copy After:=Sheets(Sheets.Count)

  ' Nadanie nowej nazwy
  On Error Resume Next
  ActiveSheet.Name = nowaNazwa
  If Err.Number <> 0 Then
    ActiveSheet.Name = nowaNazwa & "_" & Format(Now, "hhmmss")
  End If
  On Error GoTo 0

  MsgBox "Utworzono kopię arkusza: " & ActiveSheet.Name, vbInformation
End Sub

🛠️ Jak użyć tego makra?

  1. Otwórz Excela i naciśnij ALT + F11, aby otworzyć edytor VBA.
  2. Wybierz Wstaw → Moduł i wklej kod makra.
  3. Wróć do Excela i uruchom makro KopiujArkuszZData.
  4. Excel utworzy kopię aktywnego arkusza i nada jej nazwę zawierającą aktualną datę.

✅ Podsumowanie

To makro jest idealne, jeśli często potrzebujesz zarchiwizować arkusz, stworzyć kopię roboczą lub wygenerować dzienny raport. Dzięki automatycznej nazwie nie musisz martwić się o nadpisywanie poprzednich kopii.

3 sposoby na zliczenie unikalnych wartości w Excelu

🔍 Problem do rozwiązania

Chcesz sprawdzić, ile różnych (unikalnych) wartości znajduje się w danym zakresie danych, np. ilu masz różnych klientów, produktów lub kodów? Poniżej 3 sposoby na zliczenie unikatów – w zależności od wersji Excela, jaką posiadasz.

🧪 Sposób 1: Funkcja LICZ.JEŻELI + UNIKATOWE (Excel 365)

=ILE.WIERSZY(UNIKATOWE(A2:A100))

Opis działania:

  • UNIKATOWE(A2:A100) – tworzy listę unikalnych wartości z zakresu.
  • ILE.WIERSZY(...) – zlicza, ile tych wartości jest (czyli długość listy).

Uwaga: funkcja UNIKATOWE dostępna jest tylko w Excelu 365 i Excelu 2021.

🧪 Sposób 2: SUMA(1/LICZ.JEŻELI(...)) (wersje starsze)

=SUMA(1/LICZ.JEŻELI(A2:A100; A2:A100))

Ważne: musisz zatwierdzić formułę klawiszami CTRL + SHIFT + ENTER (jest to tzw. formuła tablicowa).

Opis:

  • LICZ.JEŻELI(A2:A100; A2:A100) – zlicza, ile razy każda wartość występuje.
  • 1/... – zamienia te liczby na ułamki, np. 1/2 = 0.5 (dla duplikatów).
  • SUMA(...) – dodaje te ułamki, co skutkuje liczbą unikalnych wpisów.

🧪 Sposób 3: Narzędzie „Usuń duplikaty” + ILE.WIERSZY

Ten sposób tworzy pomocniczą listę bez duplikatów:

  1. Skopiuj kolumnę z danymi do nowej lokalizacji.
  2. W menu wybierz Dane → Usuń duplikaty.
  3. W pustej komórce poniżej użyj formuły: =ILE.WIERSZY(zakres), aby zliczyć pozostałe unikalne rekordy.

Zaleta: szybka metoda w każdej wersji Excela, ale modyfikuje dane (roboczo).

✅ Podsumowanie

  • Sposób 1 – najprostszy, ale wymaga nowego Excela.
  • Sposób 2 – nieco trudniejszy, ale działa nawet w Excelu 2007.
  • Sposób 3 – bez formuł, ale zmienia dane.

Wybierz metodę, która najlepiej pasuje do Twojego arkusza i wersji programu.

3 sposoby na wyodrębnienie nazwiska z pełnego imienia i nazwiska w Excelu

🔍 Problem do rozwiązania

Masz dane w formacie Imię Nazwisko i chcesz automatycznie wyodrębnić tylko nazwisko do osobnej kolumny? Poniżej znajdziesz 3 skuteczne sposoby na rozwiązanie tego zadania – zależnie od wersji Excela i preferowanej metody.

🧪 Sposób 1: Formuła PRAWY + DŁ + ZNAJDŹ

=PRAWY(A2; DŁ(A2) - ZNAJDŹ(" "; A2))

Opis:

  • ZNAJDŹ(" ", A2) – znajduje pozycję spacji (oddzielającej imię i nazwisko).
  • DŁ(A2) – oblicza całkowitą długość tekstu.
  • PRAWY(...) – wyciąga od prawej tyle znaków, ile przypada na nazwisko.

🧪 Sposób 2: PODZIEL.TEKST (Excel 365 / 2021)

=INDEKS(PODZIEL.TEKST(A2; " "); 2)

Uwaga: ta formuła działa tylko w Excelu 365 lub Excelu 2021 i nowszych wersjach.

  • PODZIEL.TEKST – rozdziela tekst na części według spacji.
  • INDEKS(...; 2) – zwraca drugą część, czyli nazwisko.

⚡ Sposób 3: Wypełnienie błyskawiczne (Flash Fill)

To szybka metoda, która uczy się na podstawie wzoru:

  1. W kolumnie A wpisz np. Anna Kowalska, Jan Nowak.
  2. W kolumnie B wpisz obok pierwszego rekordu: Kowalska.
  3. Wciśnij CTRL + E lub wybierz z menu: Dane → Wypełnienie błyskawiczne.

Excel uzupełni pozostałe nazwiska automatycznie.

✅ Podsumowanie

  • Sposób 1 – uniwersalny, działa we wszystkich wersjach Excela.
  • Sposób 2 – najprostszy, ale wymaga Excela 365/2021.
  • Sposób 3 – szybki, ale nie dynamiczny (nie aktualizuje się przy zmianach danych).

Wybierz metodę najlepiej dopasowaną do Twoich danych i wersji Excela.

Excel: Jak wyciągnąć nazwisko z pełnego imienia i nazwiska?

🔍 Co robi ta formuła?

Ta formuła umożliwia wyodrębnienie nazwiska z tekstu zawierającego imię i nazwisko. Na przykład, jeśli w komórce A2 znajduje się Anna Kowalska, formuła zwróci Kowalska.

📋 Krok po kroku: Formuła z opisem działania

=PRAWY(A2; DŁ(A2) - ZNAJDŹ(" "; A2))

Wyjaśnienie składni formuły krok po kroku:

  • =PRAWY(...) – funkcja zwraca określoną liczbę znaków od prawej strony tekstu.
  • A2 – to komórka z pełnym imieniem i nazwiskiem, np. Anna Kowalska.
  • ZNAJDŹ(" "; A2) – szuka pozycji pierwszej spacji, czyli końca imienia.
  • DŁ(A2) – oblicza długość całego tekstu (ilość znaków).
  • DŁ(A2) - ZNAJDŹ(" "; A2) – wylicza, ile znaków pozostało po spacji (czyli długość nazwiska + spacja).
  • PRAWY(A2; ...) – zwraca tyle znaków od końca, ile wynosi różnica powyżej – czyli dokładnie nazwisko.

Efekt: jeśli w A2 masz Anna Kowalska, formuła zwróci Kowalska.

🛠️ Jak użyć tej formuły?

  1. W kolumnie A wpisz pełne imię i nazwisko, np. Anna Kowalska.
  2. W kolumnie B (lub innej) wpisz formułę: =PRAWY(A2; DŁ(A2) - ZNAJDŹ(" "; A2))
  3. Excel wyświetli samo nazwisko: Kowalska.
  4. Możesz przeciągnąć formułę w dół, aby zastosować ją do całej listy.

✅ Podsumowanie

Ta formuła przydaje się w pracy z bazami danych, kiedy musisz oddzielić nazwisko od imienia, np. do sortowania, filtrowania, korespondencji seryjnej lub analizy danych.

Excel: Jak wyciągnąć imię z pełnego imienia i nazwiska?

🔍 Co robi ta formuła?

Ta formuła umożliwia automatyczne wyodrębnienie imienia z komórki zawierającej pełne imię i nazwisko. Przykład: jeśli w komórce A2 wpisano Anna Kowalska, wynik formuły to Anna.

📋 Krok po kroku: Formuła z opisem działania

=LEWY(A2; ZNAJDŹ(" "; A2) - 1)

Wyjaśnienie działania tej formuły krok po kroku:

  • =LEWY(...) – ta funkcja zwraca określoną liczbę znaków od lewej strony tekstu.
  • A2 – to komórka zawierająca pełne imię i nazwisko, np. Anna Kowalska.
  • ZNAJDŹ(" "; A2) – ta funkcja szuka pierwszego wystąpienia spacji w tekście (czyli miejsca, w którym kończy się imię).
  • ZNAJDŹ(" "; A2) - 1 – odejmujemy 1, aby nie uwzględniać spacji w wyniku (czyli zatrzymujemy się dokładnie na końcu imienia).
  • LEWY(A2; ...) – całość wyciąga od lewej strony tyle znaków, ile wskazuje wynik ZNAJDŹ(" "; A2) - 1.

Rezultat? Jeśli w A2 wpisano Anna Kowalska, to Excel wyświetli tylko Anna.

🛠️ Jak użyć tej formuły?

  1. Wpisz pełne imię i nazwisko do komórki, np. A2: Anna Kowalska.
  2. W komórce obok (np. B2) wpisz formułę: =LEWY(A2; ZNAJDŹ(" "; A2) - 1)
  3. Excel automatycznie wyciągnie imię: Anna.
  4. Przeciągnij formułę w dół, aby użyć jej dla całej kolumny.

✅ Podsumowanie

Ta prosta, ale bardzo przydatna formuła pozwala szybko oddzielić imię od pełnego ciągu imię+nazwisko. Idealna do list kontaktów, raportów, personalizacji maili czy porządkowania baz danych.

Excel VBA: Makro do kolorowania wierszy na podstawie wartości w kolumnie

🔍 Co robi to makro?

To makro automatycznie koloruje całe wiersze w zależności od wartości w konkretnej kolumnie. Przykład: jeśli w kolumnie „Status” znajduje się „Zakończony”, to wiersz zostanie podświetlony na szaro, a jeśli „W toku” – na żółto.

📋 Krok po kroku: Makro VBA z opisem

' Rozpoczęcie makra
Sub KolorujWierszeWedlugStatusu()

  ' Zmienne pomocnicze
  Dim lastRow As Long
  Dim i As Long
  Dim status As String

  ' Odczytujemy ostatni wiersz na podstawie kolumny A
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row

  ' Przechodzimy przez każdy wiersz
  For i = 2 To lastRow
    status = Cells(i, 3).Value ' Zakładamy, że kolumna C zawiera statusy

    Select Case LCase(status)
      Case "zakończony"
        Rows(i).Interior.Color = RGB(200, 200, 200) ' szary
      Case "w toku"
        Rows(i).Interior.Color = RGB(255, 255, 153) ' żółty
      Case "błąd"
        Rows(i).Interior.Color = RGB(255, 102, 102) ' czerwony
      Case Else
        Rows(i).Interior.ColorIndex = xlNone ' brak koloru
    End Select
  Next i

  MsgBox "Kolorowanie zakończone!", vbInformation
End Sub

🛠️ Jak użyć tego makra?

  1. Otwórz Excela i naciśnij ALT + F11.
  2. Wklej kod do nowego modułu.
  3. Upewnij się, że dane zaczynają się od wiersza 2 i kolumna C zawiera statusy (np. „Zakończony”, „W toku”, „Błąd”).
  4. Uruchom makro KolorujWierszeWedlugStatusu.

✅ Podsumowanie

To makro pozwala na automatyczne wyróżnienie wierszy na podstawie statusów lub innych wartości tekstowych. Idealne do raportów, list zadań, rejestrów projektów i harmonogramów.

Excel VBA: Makro do automatycznego usuwania pustych wierszy z arkusza danych

🔍 Co robi to makro?

To makro automatycznie usuwa wszystkie puste wiersze z określonego zakresu danych w arkuszu Excela. Jest to bardzo przydatne, gdy masz importowane lub ręcznie wpisywane dane z pustymi liniami pomiędzy rekordami.

📋 Krok po kroku: Makro VBA z opisem

' Rozpoczęcie makra
Sub UsunPusteWiersze()

  ' Zmienna do przechowywania ostatniego wiersza
  Dim lastRow As Long
  Dim i As Long

  ' Ustalamy ostatni wiersz w kolumnie A
  lastRow = Cells(Rows.Count, "A").End(xlUp).Row

  ' Przechodzimy od dołu do góry, aby nie pominąć wierszy przy usuwaniu
  For i = lastRow To 1 Step -1
    If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then
      Rows(i).Delete
    End If
  Next i

  MsgBox "Puste wiersze zostały usunięte!", vbInformation
End Sub

🛠️ Jak użyć tego makra?

  1. Otwórz Excela i naciśnij ALT + F11, aby wejść do edytora VBA.
  2. W menu Wstaw → Moduł wklej powyższy kod.
  3. Upewnij się, że dane znajdują się w kolumnie A lub dalej (A, B, C...), a puste wiersze są naprawdę puste.
  4. Uruchom makro UsunPusteWiersze. Wszystkie puste linie w arkuszu zostaną usunięte.

✅ Podsumowanie

To proste makro pozwala szybko oczyścić dane z pustych wierszy, co jest szczególnie przydatne przed analizą, sortowaniem lub importem danych do baz lub innych narzędzi.

Excel VBA: Makro do filtrowania danych i kopiowania wyników do nowego arkusza

🔍 Co robi to makro?

To makro automatycznie filtruje dane w arkuszu Excela według zadanych kryteriów (np. tylko wiersze z kolumny "Status" = "Aktywny") i kopiuje je do nowego arkusza.

📋 Krok po kroku: Makro VBA z opisem

' Rozpoczęcie definicji makra
Sub FiltrowanieIKopiowanie()

  ' Deklaracja zmiennych
  Dim wsSource As Worksheet
  Dim wsTarget As Worksheet
  Dim lastRow As Long

  ' Ustawiamy aktywny arkusz jako źródłowy
  Set wsSource = ThisWorkbook.Sheets("Dane")

  ' Tworzymy nowy arkusz, gdzie wkleimy dane
  Set wsTarget = ThisWorkbook.Sheets.Add
  wsTarget.Name = "Wyniki"

  ' Znajdujemy ostatni wiersz z danymi
  lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row

  ' Włączamy filtr w arkuszu źródłowym
  wsSource.Range("A1:D" & lastRow).AutoFilter Field:=3, Criteria1:="Aktywny"

  ' Kopiujemy przefiltrowane dane (nagłówek + widoczne wiersze)
  wsSource.Range("A1:D" & lastRow).SpecialCells(xlCellTypeVisible).Copy Destination:=wsTarget.Range("A1")

  ' Wyłączamy filtr
  wsSource.AutoFilterMode = False

  MsgBox "Filtrowanie i kopiowanie zakończone!", vbInformation
End Sub

🛠️ Jak użyć tego makra?

  1. Otwórz Excela i wciśnij ALT + F11, aby przejść do edytora VBA.
  2. Wybierz Wstaw → Moduł, a następnie wklej powyższy kod.
  3. Upewnij się, że w skoroszycie masz arkusz o nazwie "Dane", gdzie kolumna C zawiera np. "Aktywny" lub inne statusy.
  4. Uruchom makro FiltrowanieIKopiowanie – dane zostaną przefiltrowane i skopiowane do nowego arkusza o nazwie "Wyniki".

✅ Podsumowanie

To makro to świetny sposób na szybką automatyzację filtracji i kopiowania danych w Excelu bez ręcznego klikania. Idealne do pracy z dużymi zestawami danych.