Excel- VBA- podmienka
Dobry den,
v Exceli mam funkciu:
1. spusti proces
|
v
2. InputBox (zapise udaj do AA1)
|
v
3. Je udaj v AA1 zapisany?
a chcem ak:
je podmienka splnena, proces zbehne dalej (prip. zavola proceduru), ak nie, aby skocilo k bodu 1 respp. 2
Ako bude dana funkcia vyzerat?
Momentalne f-cia vyzera nasledovne:
Sub x()
With Range("AA1")
Do
.Value = InputBox("vpis text")
Loop Until .Value = "podmienka"
End With
End Sub
No InputBox zostav stale spusteny a proces nepokracuje dalej. InputBox sa neda ani zatvorit.
Proste potrebujem,ze ak sa hodnota vpsie, nech proces pokracuje skopirovanim hodnoty do "AA1" a dalej.
Ak sa nevpise, nech sa proces zastavi ale nech je mozne InputBox zatvorit
Vopred DAKUJEM
A to je jako co
Víš, co to vlastně znamená (napovím: zkus do InpuBoxu napsat "podmienka").
Když už, tak
Ale takhle vpisovat hodnotu z InputBoxu přímo do buňky je podle mně prasárna. Lepší je umístit vstup z InputBoxu do proměnné, tu otestovat a teprve pak zapsat do AA1.
Dakujem za odpoved.
Nooo.. ja netvrdim, ze VB ovladam perfektne takze ano.. vela veci neviem.. prave preto som tu a pytam sa.. (tu podmienku som celkom prehladol..- moja chyba)
Funguje to takto OK, iba InputBox sa neda zatvorit.
Som otvoreny akemukolvek inemu rieseniu no chcem poprosit o strpenie, nakolko sa povazujem za zaciatocnika.
Dakujem
Tak počkej, teď jsem si to pročetl znovu a nějak si odporuješ. Prvně píšeš:
Čili chceš, aby se zadávání opakovalo do doby, než opravdu něco zadáš.
A pak chceš, aby šel InputBox zavřít:
Což se ale rovná tomu, že nic nezadáš, protože InputBox při stisku Cancel do výstupní hodnoty předá prázdný řetezec (""), tj. to samé, jako když do vstupního políčka nezapíšeš nic a stiskneš OK. Ve VBA prostě nemáš šanci tyto dva stavy odlišit.
Rozumiem. Existuje teda nejake ine riesenie? Pokojne pristupim na akykolvek napad.
Dakujem
Ano. Místo cyklu dát podmínku - když je vstupní řetězec odlišný od "", bude se pokračovat, jinak se skončí. Pro další zadání budeš muset makro spustit znovu.
Eventuelně ještě doplnit dotazem (MsgBox) "Opravdu skončit?" s tlačítky Ano / Ne:
a testovat odpověď (InpMsg) na hodnoty vbYes / vbNo.
A protože - jak píšeš - jseš ve VBA začátečník, studuj z těchto perfektních stránek:
http://office.lasakovi.com/excel/vba-formulare/exc el-inputbox-vstupni-box/
http://office.lasakovi.com/excel/vba-formulare/exc el-vba-dialogove-okno-msgbox/