Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Excel 2010, tabela rozwijana z podwójnym wyborem

54 views
Skip to first unread message

Hellbringer

unread,
Jun 6, 2011, 10:18:58 AM6/6/11
to

Witam,
Mam problem, bo nie potrafię zrobić tabeli rozwijanej z podwójnym
wyborem. Już tłumaczę o co mi dokładnie chodzi.
Tworzę listę rozwijaną np. "Województwa" , gdzie po kliknięciu
pojawiają mi się mazowieckie, podlaskie, podkarpackie itd., poniżej
chce zrobić drugą listę rozwijaną, ale zależną od wyboru z
pierwszej, czyli jeśli wybiorę województwo mazowieckie (z 1 listy) to
mają mi się pokazać tylko miasta z województwa mazowieckiego, nie chce
widzieć miast z reszty listy.
Obecnie jest mam coś takiego, że dwie listy i na poszczególnych, np. 1
wszystkie województwa i na 2 wszystkie miasta, a chcę to zawęzić.

Pozdrawiam,
Hell

--

----
Wysłano z serwisu www.outlook.pl
Forum, artykuły, porady o MS Outlook.

Cynio

unread,
Jun 8, 2011, 8:21:47 AM6/8/11
to
Nie wiem jak masz ułożone dane, więc poniższy przykład jest stworzony
dla danych gdzie w kolumnie A są województwa, w kolumnie B przypisane
do nich miasta. Dane muszą być posortowane przynajmniej po
województwach.
Dodatkowo w kolumnie J umieściłem nazwy wszystkich województw jako
źródło dla pierwszego pola kombi.

- dodaję do arkusza dwa pola kombi, wstążka deweloper, przycisk wstaw
i ze zbioru formanty ActiveX wybieramy pole kombi.

- W trybie projektowania kilkamy prawym klawiszem na pierwsze pole
kombi, wybieramy właściwości i nadajemy nazwę (właściwość name) polu
"wojewodztwa", dodatkowo ustawiamy właściwość ListFillRange na zakres
gdzie mamy województwa (u mnie kolumna J).

- Zamykamy właściwości 1-go pola kombi i klikamy na właściwości
drugiego pola kombi. nadajemy mu nazwę "miasta" i zamykamy
właściwości.

- Ponownie w trybie projektowania klikamy prawym na 1-sze pole kombi i
tym razem wybieramy opcję wyświetl kod i wklepujemy poniższe makro:

Private Sub wojewodztwa_Change()

Set pierwsza = Range("A:A").Find(what:=wojewodztwa)
Set wszystkie = pierwsza
Set znaleziona = pierwsza
Do
Set znaleziona = Range("A:A").Find(after:=znaleziona,
what:=wojewodztwa)
If znaleziona Is Nothing Then Exit Do
Set wszystkie = Union(znaleziona, wszystkie)
If znaleziona.Address = pierwsza.Address Then Exit Do
Loop

miasta.ListFillRange = wszystkie.Offset(0, 1).Address
Range("A1").Select
miasta.Value = pierwsza.Offset(0, 1)
End Sub

- zamykamy VBA, odklikujemy tryb projektowania i testujemy pola kombi.
U mnie działa

--
Pozdr.
Cynio

0 new messages