excelpogodzinach-logo
Usuwanie wierszy - Excel Po Godzinach

Usuwanie wierszy lub kolumn w arkuszu chronionym

Przygotowujesz arkusz, w którym użytkownicy będą mogli modyfikować zawartość tylko wybranych komórek. Jednocześnie chcesz dać im możliwość wstawiania i usuwania wierszy i kolumn. Kiedy wszystko masz gotowe, włączasz ochronę, ustawiasz hasło i zapisujesz skoroszyt. Wydaje Ci się, że o wszystkim pomyślałeś. Tymczasem Excel uniemożliwia użytkownikowi usunięcie wierszy lub kolumn. Dlaczego tak się dzieje? Czy Excel zepsuł się? A może o czymś zapomniałeś?

Jeśli nie pamiętasz w jaki sposób włącza się ochronę arkusza oraz na jakie działania możesz pozwolić użytkownikom, to zapoznaj się z tym artykułem. Znajdziesz w nim opisany krok po kroku proces zabezpieczania arkusza przed zmianami.

Wróćmy jednak do naszego przykładu i skupmy się na usuwaniu wierszy i kolumn. Włączając ochronę arkusza zaznaczyłeś dwie opcje, a mianowicie Usuwanie kolumn oraz Usuwanie wierszy. Niestety, w niektórych przypadkach Excel może odmówić użytkownikowi wykonania takiej operacji i wyświetli stosowny komunikat.
 
Usuwanie wierszy - Excel Po Godzinach
Usuwanie wierszy - Excel Po Godzinach

Dlaczego tak się dzieje?

Jak się domyślasz jest to związane z ochroną arkusza. Etapem poprzedzającym jej włączenie jest określenie które komórki arkusza mają być zablokowane do edycji, a które nie. Najczęściej będziesz odblokowywać komórki, do których użytkownicy będą wprowadzać wartości. Pozostałe komórki zawierające dla przykładu formuły będziesz blokować, a nawet ukrywać ich zawartość przed osobami korzystającymi ze skoroszytu.

Dlatego jeśli wiersz lub kolumna, które chcemy usunąć zawierają komórki zablokowane i odblokowane, to Excel uniemożliwi nam ich usunięcie. Jeśli wszystkie komórki wiersza lub kolumny będą odblokowane, operacja usunięcia przebiegnie bez najmniejszego problemu.

Rozwiązanie problemu

W jaki sposób można poradzić sobie z tym wyzwaniem konstruując arkusz?

Uważam, że najprostszym sposobem byłoby napisanie krótkiego makra, które mogłoby wyglądać następująco:

Sub UsunWierszKolumneZArkuszaChronionego()
ActiveSheet.Unprotect Password:="twoje_haslo"
If Selection.Rows.Count = 1 And Selection.Columns.Count = ActiveSheet.Columns.Count Then Selection.Delete Shift:=xlUp
If Selection.Rows.Count = ActiveSheet.Rows.Count And Selection.Columns.Count = 1 Then Selection.Delete Shift:=xlToLeft
ActiveSheet.Protect Password:="twoje_haslo", AllowDeletingColumns:=True, AllowDeletingRows:=True
End Sub

Po uruchomieniu makra pierwszą czynnością jest zdjęcie ochrony arkusza przy użyciu hasła (tutaj: „twoje_haslo”). W kolejnych dwóch liniach weryfikowane jest czy użytkownik zaznaczył wiersz lub kolumnę. Jeśli tak, to zostają one usunięte z arkusza. Ostatnim etapem działania makra jest ponowne włączenie ochrony arkusza z użyciem hasła.

Zaprezentowany przykład jest bardzo prosty i można go dalej rozbudowywać pod kątem konkretnych potrzeb użytkownikó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 “Usuwanie wierszy lub kolumn w arkuszu chronionym

  1. Bardzo proste i dobre. Lecz co będzie gdy postanowi usunąć coś newralgicznego w arkuszu?
    Teraz odpoczywam w Bieszczadach do 22 sierpnia i mam więcej czasu na naukę i czytanie.
    Pozdrawiam

    1. Cześć Mietek,

      Dzięki za opinię. Odpowiadając na Twoje (ciekawe) pytanie to sprawa ma się tak, że zaprezentowane makro stanowi podstawę, na bazie której można stworzyć rozwiązanie bardziej rozbudowane, które właśnie takie sytuacje, o której wspomniałeś również bierze pod uwagę.

      Pozdrawiam,

Dodaj komentarz

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