Problém s kódem ve VBA

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

mikie16
Level 1.5
Level 1.5
Příspěvky: 109
Registrován: srpen 09
Pohlaví: Muž
Stav:
Offline

Problém s kódem ve VBA

Příspěvekod mikie16 » 09 lis 2010 19:46

Zdravím, lidi. Chtěl bych poprosit o pomoc, ve škole sme začali programovat a dostali sme jednoduchý příklad, ale opravdu si s ním nevím rady, programujeme ve VBA.

Vytvořte uživatelsky definovanou funkci s názve JeCislo, která na základě vstupního parametru Vstup vrátí jako výsledek slovo číslo v případě, že parametr je skutečně číslo. V případě, že vstupní buňka je prázdná, vrátí slovo Nic a ve všech případech vrátí znakový řetězec Neni cislo.

Dekuji..

Reklama
Uživatelský avatar
Speed_dead
Level 6
Level 6
Příspěvky: 3281
Registrován: duben 10
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Problém s kódem ve VBA

Příspěvekod Speed_dead » 09 lis 2010 23:43

Není to asi nejoptimálnější způsob. nicméně to funguje. Formulář má tři prvky:
Text_vstup - textové pole
Tlačítko - commnon button
Text_výstup - textové pole (může se použít i label, nebo popup okno)
Pod tlačítkem pod akcí click se skrývá tento kód

Kód: Vybrat vše

If Val(Text_vstup.Text) = 0 And Len(Text_vstup.Text) > 0 Then Text_vystup.Text = "Neni číslo"
If Val(Text_vstup.Text) = 0 And Len(Text_vstup.Text) = 0 Then Text_vystup.Text = "Nic"
If Text_vstup.Text = "0" Or Val(Text_vstup.Text) > 0 Then Text_vystup.Text = "Číslo"


Když je číselná hodnota nula a současně délka znaků je větší jak nula je to Text
Když je číselná hodnota nula a současně délka znaků je nula není tam Nic
Když je hodnota znaku nula a nebo číselná hodnota je větší jak nula je to Číslo

Tohle si ale musíš doupravit tak, aby to odpovídalo vašemu zadání.

P.S. Toto je uděláno na desítkovou soustavu. Na hexadecimální čísla by to bylo složitější.
Google ví skoro vše. Ale někdy je problém co tam napsat, aby to našlo to, co hledám.
Pokud se to nepovede, vypadne tuna nepoužitelných odkazů a nebo taky nic.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Problém s kódem ve VBA

Příspěvekod CZechBoY » 10 lis 2010 07:48

co když tam zadá 0? to jako 0 není číslo? ehm zajímavé, nás na základce učili že i 0 je číslo :-)
není ve VB nějaká funkce na zjištění numeričnosti? třeba isNumeric nebo tak něco?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

d1amond
člen HW spec týmu
Elite Level 12
Elite Level 12
Příspěvky: 16119
Registrován: květen 08
Bydliště: České Budějovice
Pohlaví: Muž
Stav:
Offline

Re: Problém s kódem ve VBA

Příspěvekod d1amond » 10 lis 2010 08:12

Ano, existuje elegantnější fce IsNumeric.
Nápověda:

Kód: Vybrat vše


Private Sub cmdOver_Click()
Dim over As Boolean
' doplnit jeste vstup a vystup (jako Range)

over  = IsNumeric("nejakyVstup")
'no a doplnit podminky typu, kdyz vstup = "", tak chyba"; kdyz overit = true tak udelej neco,...

End Sub


Nebudeme delat celý domácí úkol :bigups:
Nikdy neříkej, že to nejde, protože se najde někdo, kdo o tom neví a udělá to!
Chcete si nechat sestavit nový počítač?

Uživatelský avatar
Speed_dead
Level 6
Level 6
Příspěvky: 3281
Registrován: duben 10
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Problém s kódem ve VBA

Příspěvekod Speed_dead » 10 lis 2010 08:15

co když tam zadá 0?

Toto řeší první část řádku
If Text_vstup.Text = "0" Or Val(Text_vstup.Text) > 0 Then Text_vystup.Text = "Číslo"

Jak jsem psal, myslel jsem si to, že může existovat na to funkce. Nicméně jsem po ni nechtěl dlouze pátrat a tak jsem to navrhnul takto.VBA jsem se nikdy ve škole neučil a tak jsem se naučil doma jen základy, když jsem si s tím hrál. Ve škole jsme se učili jen základy pro Basic pro Z80. 8)
Google ví skoro vše. Ale někdy je problém co tam napsat, aby to našlo to, co hledám.
Pokud se to nepovede, vypadne tuna nepoužitelných odkazů a nebo taky nic.

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Problém s kódem ve VBA

Příspěvekod CZechBoY » 10 lis 2010 16:02

šlo by to udělat samozřejmě lepším větvením že, ale isNumeric asi existuje i ve VBA, tak proč hrabat 3ify?
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
Speed_dead
Level 6
Level 6
Příspěvky: 3281
Registrován: duben 10
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Problém s kódem ve VBA

Příspěvekod Speed_dead » 10 lis 2010 16:34

Šlo by to narvat i do jednoho několikanásobně větveného ifu, ale tento zápis se mě zdá celkem nepřehledný. Ale stále by to byla náhrada tří ifů. Ať na tím přemýšlím jak přemýšlím minimálně dva ify tam být musí. Ať v jednotlivých řádcích, čí zapsané zkráceně. Jelikož jeden if zvládne maximálně dva výstupy, ale ne tři.
Google ví skoro vše. Ale někdy je problém co tam napsat, aby to našlo to, co hledám.
Pokud se to nepovede, vypadne tuna nepoužitelných odkazů a nebo taky nic.


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Problém s RAM
    od lukas222 » 04 lis 2024 13:52 » v Problémy s hardwarem
    4
    3381
    od lukas222 Zobrazit poslední příspěvek
    05 lis 2024 13:36
  • Problém s FPS
    od mcrakvar » 26 lis 2024 16:22 » v Vše ostatní (sw)
    4
    4013
    od petr22 Zobrazit poslední příspěvek
    28 lis 2024 10:06
  • Problém s internetem Příloha(y)
    od valama » 06 dub 2025 16:13 » v Internet a internetové prohlížeče
    11
    4778
    od RIKI22 Zobrazit poslední příspěvek
    06 dub 2025 20:42
  • Problém s mikrofonem Příloha(y)
    od Shokata88 » 19 úno 2025 16:44 » v Problémy s hardwarem
    4
    2557
    od Shokata88 Zobrazit poslední příspěvek
    19 úno 2025 19:18
  • Problém s internetem
    od yakubb23 » 31 led 2025 19:01 » v Sítě - hardware
    1
    4628
    od meda2016 Zobrazit poslední příspěvek
    31 led 2025 21:50

Zpět na “Programování a tvorba webu”

Kdo je online

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