Mozne reseni, princip:
Vyberem urcene bunky (bunek) udalostni procedura Worksheet_SelectionChange zobrazi pole se seznamem (z Ovladacich prvku, naplneno ze Seznamu, pozadovany pocet sloupcu,...), vyberem polozky je prenesena hodnota do volajici bunky. Podle hodnoty ve volajici bunce fukce SVYHLEDAT v urcenych bunkach vyhleda v Seznamu dalsi polozky.
Priklad, zakladni funkcionalita:
Seznam je na list3!A2:C6, hlavickovy radek list3!A1:C1
Ve vlastnostech pole se seznamem je v ListFillRange odkaz na seznam, BoundColumn=1, ColumnCount=3, ColumnWidths=70;50, ListWidth=200, Width=100, Visible=False,...
Udalostni procedura v modulu listu1:
Kód: Vybrat vše
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 1 Then Exit Sub
With Me.ComboBox1
.Visible = True
.Activate
.LinkedCell = Target.Address
End With
End Sub
vlozi do vlastnosti pole LinkedCell, aktivuje pole a zobrazi.
Vyberem v seznamu je prenesna do volajici bunky polozka z prvniho sloupce seznamu a procedura v modulu listu1 skryje seznam:
Kód: Vybrat vše
Private Sub ComboBox1_Click()
Me.ComboBox1.Visible = False
End Sub
Doplneni dalsich polozek: v list1!B1 je vlozen a kopirovan dolu vzorec:
=KDYŽ(A1="";"";SVYHLEDAT(A1;List3!$A$2:$C$5;2;NEPRAVDA))ktery muzes aplikovat na dalsi sloupce k doplneni polozek ze Seznamu.
Pozn.: Seznam muze byt definovan jako dynamicke pojmenovane pole viz
http://www.officir.ic.cz/chipex04/03/ex ... avani.html