Combo Box

Majme (na hárku "Zápis") (obr.1) zoznam napr. študentov VŠ 1. ročník. Zoznam zapíšeme (priezvisko a meno študenta) napr. do stĺpca D. Tento stĺpec bude skrytý. Úloha: Na konci semestru, prípadne aj priebežne, potrebujeme mať zoznam všetkých študentov, ktorí vykonali uvedené činnosti (zápočet, skúška, test, prezentácia.) a to :

  1. triedený podľa priezviska
  2. triedený podľa dátumu
bxy0 (21K)
bxy1 (14K)
Na obr. 2 sú zobrazené vlastnosti combo boxu 1, všimnite si položku "ListFillRange" (označenú modrou farbou) - ktorá znamená, že v oblasti tabuľky Excelu "D2:D26" sú zapísané mená študentov, odkiaľ ich volíme. V hárku "Sem ulož" dostávame tabuľku:

bxy4 (6K)
Do hárku Zápis vložíme ešte combo box (obr.1 - stĺpec F, modro sfarbené bunky, obr. 2 - vlastnosti) - pre zadávanie mien študentov a ďalší combo box pre výber činností. V tom istom hárku bude v prvom stĺpci meno študenta (ktoré zadáme výberom z combo boxu, v druhom stĺpci zadáme dátum a do tretieho zadáme činnosť (zápočet, skúška, test, prezentácia...) z ďalšieho combo boxu. Potom kliknutím na tlačidlo "Ulož" sa vložené údaje skopírujú do hárku "Sem ulož". Kliknutím na tlačidlo s príkazom (command button) "Triediť" skopíruje sa celá tabuľka z hárku "SemUlož" do hárku "Triediť", potom sa triedí najprv podľa priezviska a do druhej tabuľky podľa dátumu. Táto sa neustále doplňuje. Po každom doplnení môžeme triediť a potom dostávame v hárku Triedi dve tabuľky - jednu zoradenú podľa priezviska študenta a druhú vpravo vedľa, zoradenú podľa dátumu (obr. 4).
bxy5 (17K)

Potrebujeme k tomu tieto makrá:

Sub UložTab()
    Range("A2:C2").Select
    Selection.Copy
    Sheets("SemUlož").Select
    Set oblast1 = ActiveSheet.UsedRange
    oblast1.Select
    pocr = Selection.Rows.Count
    R = pocr + 1
    Cells(R, 1).Select
    ActiveSheet.Paste
    ActiveSheet.Cells(R, 2).Select
    Selection.NumberFormat = "dd/mm/yy"
    Application.CutCopyMode = False
    Sheets("Zápis").Activate
End Sub

Public Sub Triedi()
Worksheets("Triedí").Range("A1:Z2000").Clear
'Teraz tabuľku na liste SemUlož
'skopírujeme do listu Triedí
    Sheets("SemUlož").Select
    Set oblast2 = ActiveSheet.UsedRange
    oblast2.Select
    Selection.Copy
    Sheets("Triedí").Select
    Range("A1").Select
    ActiveSheet.Paste 'do tohoto listu prilepíme
    ' teraz budeme triediť
ActiveCell.CurrentRegion.Sort Key1:=Range("A2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Range("A1").Select
    Set oblast3 = ActiveSheet.UsedRange
    oblast3.Select
    Selection.Copy
    Range("E1").Select
    ActiveSheet.Paste
    Range("E1").Select
ActiveCell.CurrentRegion.Sort Key1:=Range("F2"), _
Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    Application.CutCopyMode = False
    Columns("A:G").EntireColumn.AutoFit   
End Sub

Môžete si stiahnúť tabuľku Excelu (zip):  

ComboBoxy  veľkosť:29 kB

Valid HTML 4.01 Transitional

Stránka je v súlade s aktuálnymi normami.

Kontakty