Stránka 1 z 1

Case a vyhodnocování výrazů

Napsal: 17 led 2013 13:16
od Jakub Klinke
Tak jsem si myslel že mám pro dnešek vyhráno a opět jsem trochu narazil :) Vyzkoušel jsem snad vše a skončil s následující variantou kódu, která ale stále nefunguje. Jednoduše řešeno, potřebuji aby se při spuštění formuláře prověřila hodnota v buňce a dle toho se označil správný optionbox tečkou. :)

Poraďte, díky...

Kód: Vybrat vše

Private Sub UserForm_Initialize()
Select Case Sheets("ID").Range("C16").Value
        Case Sheets("ID").Range("C16").Value = "Inkasem"
        PlatbaInkasem.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Přes Distributora"
        PlatbaPresDistributora.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Převodem na účet"
        PlatbaPrevodem.Enabled = True
        Case Sheets("ID").Range("C16").Value = "V hotovosti při převzetí"
        PlatbaPrevodem.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Zálohově"
        PlatbaZalohove.Enabled = True
End Select
End Sub

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 13:40
od Mirdad69
Co takhle přidat celý sešit?

--- Doplnění předchozího příspěvku (17 Led 2013 13:58) ---

Z tohoto kousku poznám jen, že při hodnotách Převodem na účtem a V hotovosti se na True nastaví jeden boxík a to PlatbaPrevodem.Enabled. Byl to záměr?

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 14:08
od Jakub Klinke
To je chyba, ale po opravě to stejně nefunguje...

Toto je celá struktura a vzhled formuláře u kterého potřebuji načíst option boxy dle hodnoty v buňce (označeno / neoznačeno)

Kód: Vybrat vše

Private Sub DopravaNeniVCene_Click()
If DopravaNeniVCene.Value = True Then Sheets("ID").Range("C17").Value = "Doprava není v ceně"
End Sub

Private Sub DopravaVCene_Click()
If DopravaVCene.Value = True Then Sheets("ID").Range("C17").Value = "Doprava je v ceně"
End Sub

Private Sub UserForm_Initialize()
TextBox1.Text = Sheets("ID").Range("G5").Text
TextBox2.Text = Sheets("ID").Range("G13").Text
TextBox3.Text = Sheets("ID").Range("I14").Text
TextBox4.Text = Sheets("ID").Range("J14").Text
TextBox5.Text = Sheets("ID").Range("I15").Text
TextBox6.Text = Sheets("ID").Range("I16").Text
TextBox7.Text = Sheets("ID").Range("K16").Text
InfoKNabidce.Value = IIf(Sheets("INFO").Visible = -1, True, False)
NavrhovanyStav.Value = IIf(Sheets("NÁVRH").Visible = -1, True, False)
StavajiciStav.Value = IIf(Sheets("STÁVAJÍCÍ").Visible = -1, True, False)
DetailSokluSlicovany.Value = IIf(Sheets("DS - lícující").Visible = -1, True, False)
DetailSoklUstupujici.Value = IIf(Sheets("DS - odsazený").Visible = -1, True, False)
DetailOknoSlicovane.Value = IIf(Sheets("DO - lícující").Visible = -1, True, False)
DetailOknoZapustene.Value = IIf(Sheets("DO - zapuštěné").Visible = -1, True, False)
Select Case Sheets("ID").Range("C16").Value
        Case Sheets("ID").Range("C16").Value = "Inkasem"
        PlatbaInkasem.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Přes Distributora"
        PlatbaPresDistributora.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Převodem na účet"
        PlatbaPrevodem.Enabled = True
        Case Sheets("ID").Range("C16").Value = "V hotovosti při převzetí"
        PlatbaVHotovosti.Enabled = True
        Case Sheets("ID").Range("C16").Value = "Zálohově"
        PlatbaZalohove.Enabled = True
End Select
End Sub

Private Sub DetailOknoSlicovane_Click()
If DetailOknoSlicovane.Value = True Then Sheets("DO - lícující").Visible = -1
If DetailOknoSlicovane.Value = False Then Sheets("DO - lícující").Visible = 0
End Sub

Private Sub DetailOknoZapustene_Click()
If DetailOknoZapustene.Value = True Then Sheets("DO - zapuštěné").Visible = -1
If DetailOknoZapustene.Value = False Then Sheets("DO - zapuštěné").Visible = 0
End Sub

Private Sub DetailSokluSlicovany_Click()
If DetailSokluSlicovany.Value = True Then Sheets("DS - lícující").Visible = -1
If DetailSokluSlicovany.Value = False Then Sheets("DS - lícující").Visible = 0
End Sub

Private Sub DetailSoklUstupujici_Click()
If DetailSoklUstupujici.Value = True Then Sheets("DS - odsazený").Visible = -1
If DetailSoklUstupujici.Value = False Then Sheets("DS - odsazený").Visible = 0
End Sub

Private Sub InfoKNabidce_Click()
If InfoKNabidce.Value = True Then Sheets("INFO").Visible = -1
If InfoKNabidce.Value = False Then Sheets("INFO").Visible = 0
End Sub

Private Sub NavrhovanyStav_Click()
If NavrhovanyStav.Value = True Then Sheets("NÁVRH").Visible = -1
If NavrhovanyStav.Value = False Then Sheets("NÁVRH").Visible = 0
End Sub

Private Sub StavajiciStav_Click()
If StavajiciStav.Value = True Then Sheets("STÁVAJÍCÍ").Visible = -1
If StavajiciStav.Value = False Then Sheets("STÁVAJÍCÍ").Visible = 0
End Sub

Private Sub TextBox1_Change()
Sheets("ID").Range("G5") = TextBox1.Value
End Sub

Private Sub TextBox2_Change()
Sheets("ID").Range("G13") = TextBox2.Value
End Sub

Private Sub TextBox3_Change()
Sheets("ID").Range("I14") = TextBox3.Value
End Sub

Private Sub TextBox4_Change()
Sheets("ID").Range("J14") = TextBox4.Value
End Sub

Private Sub PlatbaInkasem_Click()
If PlatbaInkasem.Value = True Then Sheets("ID").Range("C16").Value = "Inkasem"
End Sub

Private Sub PlatbaPresDistributora_Click()
If PlatbaPresDistributora.Value = True Then Sheets("ID").Range("C16").Value = "Přes Distributora"
End Sub

Private Sub PlatbaPrevodem_Click()
If PlatbaPrevodem.Value = True Then Sheets("ID").Range("C16").Value = "Převodem na účet"
End Sub

Private Sub PlatbaVHotovosti_Click()
If PlatbaVHotovosti.Value = True Then Sheets("ID").Range("C16").Value = "V hotovosti při převzetí"
End Sub

Private Sub PlatbaZalohove_Click()
If PlatbaZalohove.Value = True Then Sheets("ID").Range("C16").Value = "Zálohově"
End Sub

Private Sub Hotovo_Click()
SestavitNabidku.Hide
End Sub






Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 14:17
od Mirdad69
Tak to je dotaz pro lepší kanony než jsem já. Z kódu a z jpg obrázku toho moc nevyčtu.

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 16:01
od Jakub Klinke
OK, xls přikládám

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 16:19
od Mirdad69
Zkus tohle:

Kód: Vybrat vše

Select Case Sheets("ID").Range("C16").Value
        Case Is = "Inkasem"
        SestavitNabidku.PlatbaInkasem.Value = Enabled
        Case Is = "Přes Distributora"
        SestavitNabidku.PlatbaPresDistributora.Value = Enabled
        Case Is = "Převodem na účet"
        SestavitNabidku.PlatbaPrevodem.Value = Enabled
        Case Is = "V hotovosti při převzetí"
        SestavitNabidku.PlatbaVHotovosti.Value = Enabled
        Case Is = "Zálohově"
        SestavitNabidku.PlatbaZalohove.Value = Enabled
End Select

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 17:55
od Jakub Klinke
Děkuji, funguje to perfektně, je tedy třeba na začátek napsat název formuláře, aby to fungovalo.. To by mě nikdy nenapadlo.. člověk se stále učí :)

Re: Case a vyhodnocování výrazů

Napsal: 17 led 2013 19:24
od Mirdad69
Tak to zrovna ne. To mi tam zůstalo, když jsem zkoušel přijít na tu chybu.
Pomohlo "Case Is ..." .