fbpx

Dynamiczne źródło listy rozwijanej

23.11.2017 | Triki

Czyli co zrobić, aby źródło listy rozwijanej samo się powiększało?

Temat, który pojawił się na webinarze o listach rozwijanych i powtarza się w wielu mailach, które do mnie piszecie. Listy rozwijane już umiemy tworzyć (opisuję to choćby tutaj). Ten temat powtarzał się na blogu wieeele razy. Jednak do tej pory opisywałam listy, które mają statyczne źródło. Dziś odpowiem na pytanie o to, co zrobić, żeby źródło listy rozwijanej się powiększało?

Omówię to na prościutkim przykładzie: mamy listę rozwijaną, z której chcemy wybrać dział, w którym pracuje dany pracownik. Natomiast chcemy mieć możliwość dopisywania działów i nasza lista ma te nowe działy uwzględnić.

Tak wygląda formatka:

Formatka

Formatka

Trik jest bardzo prosty, tylko jak zwykle trzeba o nim wiedzieć :). Chodzi o to, aby źródło listy rozwijanej było obiektem tabela. Potem samo idzie 😉

Zobaczmy to dokładniej.

Krok 1. Tworzenie obiektu tabela

Chcemy, aby źródło listy rozwijanej było tabelą (nawet jeśli jednokolumnową). Aby stworzyć z danych tabelę, należy ustawić się w tych danych (u nas to zakres D3:D10) i użyć skrótu klawiszowego Ctrl + t. Po zatwierdzeniu okienka tworzenia tabeli dostaniemy taki obrazek:

Gotowa tabela

Gotowa tabela

Oczywiście kolorki tego cuda można sobie pozmieniać.

Jedną z właściwości obiektu tabela jest to, że zwiększa swój zakres po dopisaniu do niej danych. Tę właściowość wykorzystamy w liście rozwijanej (krok 2.).

Krok 2. Tworzenie listy rozwijanej

Aby ją stworzyć najpierw należy:

1.  Zaznaczyć komórki, w których ma ta lista się pojawić. U nas jest to żółta komórka B4.

2. Następnie wybrać z menu Dane/ Sprawdzanie Poprawności.

3. Pojawi się okienko sprawdzania poprawności, z którego wybieramy, że dozwoloną wartością ma być lista.

4. W polu Źródło wskazujemy natomiast naszą tabelę, którą stworzyliśmy w poprzednim kroku, a konkretnie te wpisy, które mają się pojawić na liście, czyli D4:D10. KOmplet informacji pokazuje poniższy obrazek:

Tworzenie listy rozwijanej

Tworzenie listy rozwijanej

Powstanie nam oczywiście lista rozwijana w komórce, natomiast będzie miała ona interesującą nas właściwość – jej źródło będzie dynamiczne, czyli jak dopiszemy nowy dział do spisu działów – pojawi się on na liście rozwijanej w żółtej komórce. Prezentuje to obrazek poniżej:

Wynik - dopisany nowy dział

Wynik – dopisany nowy dział

Tak stworzona lista rozwijana rzeczywiście będzie miało samopowiększające się źródło, natomiast warto wiedzieć, że to zadziała, jak tabela źródłowa jest w tym samym arkuszu ups!). Jest oczywiście sposób, aby działało między arkuszami i możesz o nim przeczytać tutaj.

I tyle! Proste? I hope ;). Komu pomogłam to dajcie proszę znać w komentarzu 🙂

Poniżej wersja wideo tego triku:

 

 

 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

10 komentarzy

  1. jedyny minus to, że lista musi być w tym samym arkuszu

    Odpowiedz
    • Tak, to niestety jest minus… ;( Dopiszę do artykułu, żeby nie było wątpliwości 😉

      Odpowiedz
      • I obiecany artykuł tutaj:

        Odpowiedz
    • Nie musi.
      W jednym arkuszu tworzymy tabelę o przykładowej nazwie „tblTesty”
      a potem w poprawności danych w innym arkuszu
      =adr.pośr(„tblTesty”)

      Odpowiedz
  2. a jak zrobić aby nazwy z listy rozwijanej podpowiadały sie podczas wpisywania kolejnych znaków nazwy…?

    Odpowiedz
    • Tego niestety nie zrobimy zwykłym sprawdzaniem poprawności ze „starym” mechanizmem Excela. Jest to możliwe (choć też nie w idealny sposób) za pomocą nowego „calculating engine” w Excelu (dostępny w Excelu 365, insider edition) i Leila Gharani pokazuje go tutaj: https://youtu.be/Z-h2UER3b_0
      Jeśli nie ta opcja, to zostaje już tylko VBA i to wcale nie takie proste… Tutaj jest coś, co może pomóc: https://www.contextures.com/xlDataVal10.html

      Odpowiedz
  3. Witam serdecznie,
    Chciałbym nadmienić, że robi Pani świetną robotę.

    Czy mogłaby Pani zrobić kurs na temat filtrowania danych w tabeli z pomocą list rozwijanych.
    Mam tabelę z danymi i chciałbym, aby wybierając z listy rozwijanej jakąś daną z zawartą w danej kolumnie tabla pokazywała tylko wiersz z danej tabeli.
    Przykładowo wybieram z listy Lp. 1 tabela wyświetla mi wiersze w których w kolumnie Lp. zawiera się 1.
    Pozdrawiam

    Odpowiedz
    • Witam,
      bardzo dziękuję za słowa uznania :). Zawsze mi miło, jak słyszę takie 🙂
      Odnośnie pytania – tutaj trzeba byłoby użyć już zdarzeń w VBA po to, aby takie filtrowanie działo się automatycznie.
      Natomiast wydaje mi się, że może w takiej sytuacji wystarczy po prostu autofiltr? Pytanie dokładnie jaka jest sytuacja? 🙂

      Odpowiedz
  4. Witam
    Szukam sposobu automatycznego zwiększenia wysokości wiersza listy rozwijanej w przypadku wybrania dłuższego tekstu.
    Pozdrawiam
    Darek

    Odpowiedz
    • Hej, można napisać zdarzenie w VBA, które na zmianę wartości danej komórki automatycznie powiększałoby wysokość wiersza. To jedyne, co przychodzi mi do głowy…

      Odpowiedz

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *