VBa - kontrola vyplněné hodnoty v comboboxu Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

WikisRuleZz
Level 1
Level 1
Příspěvky: 76
Registrován: leden 11
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline

VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod WikisRuleZz » 01 úno 2011 20:47

Dobrý den,

Mám formulář, kde se vyplňují nějaké hodnoty předdefinované v comboboxu. Je zde i tlačítko, které tyto hodnoty pak vyplní do excelu do buněk.

Potřebuji udělat kontrolu, zda-li je vyplněné nějaká hodnota z comboboxu. Pokud není vyhodí to msgbox s upozorněním a nic se nezapíše.

Kód pro zápis

Kód: Vybrat vše

Private Sub cmdZapis_Click()

SaveRow

If Cells(irow, 1).Value = "" Then
        irow = 1
    Else
        irow = irow + 1
        LoadRow
End If
    MonthView1.Value = Date
    ComboBox5.Value = "1/8 (423 min)"
   
    If CheckBox1.Value = True Then
    Unload Me
    End If


zkoušel jsem combobox.value isempty ale nějak mi to nefungovalo. Prosím o pomoc.
"V případě hrubé nedbalosti hlavního počítače vedoucí k ohrožení posádky jsou všechny lodě Jupiterské důlní společnosti povinny mít záložní počítač, který nahradí počítač hlavní." Červený trpaslík.

Reklama
navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod navstevnik » 01 úno 2011 22:58

Nejak mi neni jasne, co prilozena ukazka kodu ma vykonat.
Vyjdu-li z :
Potřebuji udělat kontrolu, zda-li je vyplněné nějaká hodnota z comboboxu.

potom kontrola vlastnosti Value na prazdnou hodnotu a zapis do prvni volne bunky ve sloupci muze vypadat ukazkove takto (predpoklad, ze RowSource zahrnuje i praznou bunku), procedura v modulu UserForm1:

Kód: Vybrat vše

Option Explicit

Private Sub ComboBox1_Click()
  Dim Cll As Range
  If Me.ComboBox1.Value <> vbNullString Then
    With Worksheets("list1")
      ' nalezt prvni prazdnou bunku ve sloupci, sloupec ma hlavicku:
      Set Cll = .Cells(.Rows.Count, "d").End(xlUp).Offset(1, 0)
    End With
    ' vlozit hodnotu z Combboxu do bunky
    Cll.Value = Me.ComboBox1.Value
  Else
    MsgBox "nutno vybrat hodnotu"
  End If
  Set Cll = Nothing  ' odstranit objektovou promennou
  Unload Me
End Sub

WikisRuleZz
Level 1
Level 1
Příspěvky: 76
Registrován: leden 11
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod WikisRuleZz » 02 úno 2011 08:13

Ve své podstatě ta ukázka je prakticky zápis z formuláře a já právě do tohoto potřebuji dát jednotlivé kontroly comboboxů. Mám tam Combobox 1-5 a potřebuji aby se neprovedl zápis (ta ukázka) když je alespoň jeden z nich prázdný a vyskočil tam msgbox
"V případě hrubé nedbalosti hlavního počítače vedoucí k ohrožení posádky jsou všechny lodě Jupiterské důlní společnosti povinny mít záložní počítač, který nahradí počítač hlavní." Červený trpaslík.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod navstevnik » 02 úno 2011 09:58

Kdyz ctu, co potrebujes, ta mi to pripada jako Lorem ipsum.
ComboBox slouzi pro 'rucni' vlozeni hodnoty, pripadne k vyberu ze seznamu. Takze mi unika smysl programoveho zapisu hdnoty do ComboBoxu, ale budiz.
Nize uvedena procedura v udalostni procedure tlacitka Sub cmdButton1_Click zkontroluje ComboBoxy (jejich nazvy zacinaji cbo: napr. cboBox1; cbo...; ...) a pokud nejsou prazdne, vykona zapis (psal jsi: "...., které tyto hodnoty pak vyplní do excelu do buněk."), je to demo, uprav si, zmen, napis cokoliv jineho, jak potrebujes.

Kód: Vybrat vše

Option Explicit

Private Sub cmdButton1_Click()
  Dim Cntrl As Control, Cll As Range
  ' test ComboBoxu na Value=vbnullstring
  For Each Cntrl In Me.Controls
    If Left(Cntrl.Name, 3) = "cbo" Then
      If Cntrl.Value = vbNullString Then
        MsgBox "V " & Cntrl.Name & " je nutno vybrat hodnotu", vbOKOnly + vbExclamation
        GoTo ExSub
      End If
    End If
  Next Cntrl
  ' zde je priklad zapisu do bunek sloupce
  For Each Cntrl In Me.Controls
    If Left(Cntrl.Name, 3) = "cbo" Then  ' test ComboBoxu
      With Worksheets("list1")
        ' nalezt prvni prazdnou bunku ve sloupci, sloupec ma hlavicku:
        Set Cll = .Cells(.Rows.Count, "d").End(xlUp).Offset(1, 0)
      End With
      ' vlozit hodnotu z Combboxu do bunky
      Cll.Value = Cntrl.Value
    End If
  Next Cntrl
  Set Cll = Nothing
ExSub:
  Set Cntrl = Nothing
  Unload Me
End Sub

WikisRuleZz
Level 1
Level 1
Příspěvky: 76
Registrován: leden 11
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod WikisRuleZz » 02 úno 2011 12:02

Špatně jsem se vyjádřil. Mám combobox a v něm nějaké hodnoty na výběr. Při načtení je combobox prázdný a musím ho rozkliknout a vybrat nějakou hodnotu. Pak se tato hodnota při stisku tlačítka zapíše na danou pozici v sešitě třeba A1. To že je při načtení formuláře combobox prázdný je dobře. Akorád potřebuji msgbox když někdo zapomene vyplnit combobox.

Takže něco jako když je combobox prázdný pak msgbox "zadej hodnotu".

Lorem ipsum je generátor? Nechápu tedy přirovnání.
"V případě hrubé nedbalosti hlavního počítače vedoucí k ohrožení posádky jsou všechny lodě Jupiterské důlní společnosti povinny mít záložní počítač, který nahradí počítač hlavní." Červený trpaslík.

navstevnik
Level 4
Level 4
Příspěvky: 1142
Registrován: srpen 08
Pohlaví: Nespecifikováno
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu

Příspěvekod navstevnik » 02 úno 2011 14:53

http://cs.wikipedia.org/wiki/Lorem_ipsum
...
znázorňuje text ... než bude do hotového návrhu vložen smysluplný obsah
...
Text připomíná klasickou latinu, avšak ve skutečnosti je nesmyslný, smyšlený.
...

Pri trose namahy z predchozich odpovedi jsi mohl ziskat potrebne reseni.
Pripoj v priloze sesit obsahujici cast, se kterou potrebujes pomoci.

WikisRuleZz
Level 1
Level 1
Příspěvky: 76
Registrován: leden 11
Bydliště: Pardubice
Pohlaví: Muž
Stav:
Offline

Re: VBa - kontrola vyplněné hodnoty v comboboxu  Vyřešeno

Příspěvekod WikisRuleZz » 02 úno 2011 15:24

Ano, odpověď jsem použil. Jen jsem měl potřebu doplnit informace.
"V případě hrubé nedbalosti hlavního počítače vedoucí k ohrožení posádky jsou všechny lodě Jupiterské důlní společnosti povinny mít záložní počítač, který nahradí počítač hlavní." Červený trpaslík.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti