Zavrieť

Porady

Ako na rozbalovací zoznam?

Dobrý deň,

Pomohol by mi niekto s formulárom? Najlepšie v excell...
Potreboval by som spraviť formulár zo zoznamom rozbalovacím. Teda bude ponúkať výber.

Lenže keď vytvorím rozbalovací zoznam napríklad:

Pečivo
Chlieb

A niekto si vyberie že Chlieb, tak v ďalšom zozname bude mať na výber napríklad tmavý, alebo bledý.
Ak si vyberie Pečivo, tak bude mať na výber grahamové, alebo biele.

A bolo by dobré aby sa dalo vyberať aj tak, že po kliknutí na šipku sa zadá na klávesnici "gr" a v zozname skočí hneď na grahamový ( aby to nemusel listovať).

Ďakujem
Pravidlá a tipy
  • Každý móže napísať len 1 odpoveď. Neskor mozete svoju odpoveď vylepšiť.
  • Odpoveď má priniesť riešenie na otázku, vyvarujte sa hodnotenia otázky.
  • Odpoveď má byť viac o faktoch ako o názoroch.
Dalšie pravidla a tipy
    Ak potrebujete v otázke niečo upresniť, najskôr sa spýtajte na podrobnosti.
    Koncept slúži na uloženie rozpracovanej odpovede, koncept sa zobrazuje len Vám, až kým ho nezverejníte.
    Ak máte podobnú otázku, založte Novú otázku alebo Súvisiacu otázku.
    ❤ Buďte priateľskí ❤
    Sme súčasťou jednej komunity, ktorá si chce vzájomne pomáhať, rozdieľnosť je vítaná ak neubližuje!
    Usporiadať podľa času

    PushCar je offline (nepripojený) PushCar

    PushCar
    Dobrý deň


    1. stačí si vložiť do excelu svoje údaje s tým, že v prvom stĺpci budú názvy produktov
    2. v riadkoch budú ich rôzne typy
    3. Makro automaticky zadá tieto riadky do názvov oblastí aj s ošetrením keby náhodou obsahovali medzeru (ostatné nepovolené znaky si musíte už sami ošetriť inak sa zasekne pri definovaní názvov)
    4. Môžte aktualizovať a pridávať rôzne druhy a pri znovunačítaní formulára sa automaticky načítajú aj nové aktualizované údaje vďaka offset
    -----------------------------------------
    Private Sub cboProdukt_Change()
    Dim rngTyp As Range
    Dim MojaOblast As Variant
    Dim PoslRiad As Integer
    Dim ws As Worksheet
    Dim strProdukt As String
    Dim strOut As Variant
    Set ws = Worksheets("ZOZNAMY")

    PoslRiad = ws.Range("A" & Rows.Count).End(xlUp).Row
    MojaOblast = ws.Range("A1:A" & PoslRiad)
    strProdukt = cboProdukt.Value

    For lngLoop = 1 To Len(cboProdukt.Value)
    If Mid(cboProdukt.Value, lngLoop, 1) <> " " Then
    strOut = strOut & Mid(cboProdukt.Value, lngLoop, 1)
    End If

    Next
    Dim i As Integer


    For i = 1 To cboTyp.ListCount


    cboTyp.RemoveItem 0


    Next i
    For Each rngTyp In ws.Range(strOut)
    Me.cboTyp.AddItem rngTyp.Value
    Next rngTyp

    End Sub


    Private Sub UserForm_Initialize()


    Dim rngProdukt As Range
    Dim ws As Worksheet
    Dim MojaOblast As Variant
    Dim PoslRiad As Integer
    Dim lngLoop As Long
    Dim strOut As Variant

    Set ws = Worksheets("ZOZNAMY")

    PoslRiad = ws.Range("A" & Rows.Count).End(xlUp).Row
    MojaOblast = ws.Range("A1:A" & PoslRiad)
    'nazov oblasti bude prvy udaj z docasnej premennej MojaOblast
    ActiveWorkbook.Names.Add Name:=MojaOblast(1, 1), RefersToR1C1:= _
    "=OFFSET(ZOZNAMY!R2C1, 0, 0, COUNTA(ZOZNAMY!C1)-1,1)"


    For i = 2 To PoslRiad

    For lngLoop = 1 To Len(MojaOblast(i, 1))
    If Mid(MojaOblast(i, 1), lngLoop, 1) <> " " Then
    strOut = strOut & Mid(MojaOblast(i, 1), lngLoop, 1)
    End If

    Next
    On Error GoTo osetrujuca_metoda
    ActiveWorkbook.Names.Add Name:=strOut, RefersToR1C1:= _
    "=OFFSET(ZOZNAMY!R" & i & ", 0, 1, 1, COUNTA(ZOZNAMY!R" & i & ")-1)"
    strOut = ""

    Next

    For Each rngProdukt In ws.Range(MojaOblast(1, 1))
    Me.cboProdukt.AddItem rngProdukt.Value
    Next rngProdukt


    osetrujuca_metoda:
    If Err.Number = 1004 Then
    MsgBox ("produkt " & MojaOblast(i, 1) & " obsahuje nepovolené znaky! Dodržujte pravidlá syntaxe pre názvy vo vzorcoch")
    Else
    MsgBox ("Nastala chyba")
    End If


    End Sub
    ------------------------
    mozno by nebolo zle aj lahsie poriesit to v Access-i myslim ze aj konecny vysledok by bol lepsi...

    sthruska je offline (nepripojený) sthruska

    sthruska
    Priamo neporadím, ale budeš to musieť urobiť vo VBA.
    Vyberieš položku v prvom ComboBox-e. V udalosti onClick zavoláš funkciu pomocou ktorej potom naplníš zoznam v druhom ComboBox-e.

    PaloPa je offline (nepripojený) PaloPa

    PaloPa
    Snoophy Pozri príspevok
    Dobrý deň,

    ... A niekto si vyberie že Chlieb, tak v ďalšom zozname bude mať na výber napríklad tmavý, alebo bledý.
    Ak si vyberie Pečivo, tak bude mať na výber grahamové, alebo biele. ...
    Ďakujem
    Už to tu bolo riešené, link smeruje na príspevok kde je to riešené pre autá,
    stačí urobiť analogickú úpravu.
    http://www.porada.sk/t173558-rolovac...ml#post1811159

    Ak to má byť s ComboBox-om a makrom, to je riešené tu:
    http://www.porada.sk/t177126-combobox.html#post1856375

    Príspevkov na prácu s rozbaľovacím zoznamom na všetky spôsoby je tu tiež X. Stačí do hľadania zadať ComboBox.

    Palo
    Naposledy upravil PaloPa : 07.02.13 at 07:36 Dôvod: doplnenie

    PaloPa je offline (nepripojený) PaloPa

    PaloPa
    Pekné riešenie.

    Ešte jedna drobnosť (doplniť do kódu), aby pri volaní formu nehodilo chybu:
    Code:
    Next rngProdukt
     Exit Sub
    
    osetrujuca_metoda:
    P.

    Ako na rozbalovací zoznam?

    Porady, ktoré by vás mohli zaujímať

    Prihláste sa a sledujte len tie Porady, ktoré Vás zaujímajú.