Excel - nefungují tlačítka

Od: Datum: 07.05.13 08:25 odpovědí: 16 změna: 21.05.13 08:14

Dobrý den,

vytvořil jsem si tabulku ve starší verzi excelu 2000 a nainstaloval jsem si MS office 2007.

Mám tam vytvořené tlačítka, která ovládají makra, nyní mi to nefunguje, zkoušel jsem nastavení maker "povolit všechna makra" ale nepomáhá to :(

Neporadil by mi někdo co bych měl ještě zkusit?

Moc se zatím v tom novém 2007 nevyznám v nastavení.

Děkuji


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Od: martin22
Datum: 07.05.13 08:30

Ještě mi tam po otevření vyskočí okno s hláškou:

"V tomto sešitu byl ztracen projekt jazyka VBA, ovládací prvky ActiveX a všechny ostatní vlastnosti týkající se programovatelnosti."

Nevím si s tím vůbec rady :(

Datum: 07.05.13 14:53
avatar

se obávám, že zvítězí stará dobrá ruční práce. Aktivní prvky byly do základu předělané a vám nezbude, než vaši tabulku modernizovat. Naštěstí to není zase tak moc těžké. Vložte nový prvek z nabídky Active X Controls, na něj pověste makro toho starého a když bude fungovat, pak starý bez milosti vymažte.

doplněno 08.05.13 09:02:

Prvky Form pocházejí ze středověku. Zatím sice možná někde ještě fungují, ale nepochybně časem přestanou. Prvky Active X jsou novější.

Takže vám radím, je záhodno vždycky používat nejnovější prvky.

Ohodnoceno: 0x
 
Od: martin22
Datum: 08.05.13 10:59

Děkuji mockrát,

chtěl bych se zeptat když bych zvolil číselní z těch nových ActiveX. Když jej vložím, kde tam zadám jaké číslo a o kolik se mi má měnit?

Poradíte prosím?

Datum: 08.05.13 12:46
avatar

jj, tady je právě ten hlavní rozdíl. Vyberete Spin a nahoře v menu stisknete tlačítko Properties. Otevře se okno s vlastnostmi Spinu. V kolonce Max nastavíte maximální hodnotu, v kolonce Min minimální hodnotu a o kousek níže je další vlastnost, co se jmenuje Small change. Tam nastavíte krok, po kterém hodnota Spinu přibývá nebo ubývá. Ještě je tam vlastnost Linked cell. Když do ní napíšete A1, hodnota Spinu se bude vkládat do buňky A1. Zkuste si taky nastavit ty ostatní vlastnosti. Například kolonku Enabled nastavte na False a uvidíte co se stane.

Atd.

Objeví se před vámi úplně nový svět. :)

Ohodnoceno: 0x
 
Od: martin22
Datum: 10.05.13 19:44

Perfektní děkuji jde to :D

chtěl bych se ještě zeptat na jednu věc, když bych si zvolil v ActiveX příkazové tlačítko, jak do něj dostanu makro? To nejde nějak jednoduše přidat jak je tomu u těch starších ovládacích prvků formulářů?

Děkuji mockrát

Datum: 12.05.13 10:05
avatar

nejde to tak jednoduše. Věc je mírně komplikovanější, už to chce jakousi praxi s windows a jakési znalosti angličtiny. Ale jak jsem povídal, otevírá se před vámi nový svět.

Nahoře v menu Developer je pod Properties je další tlačítko View Code.

Vyberte vaše tlačítko a stiskněte View Code. Otevře se před vámi nové okno. V něm umístíte volání vašeho makra. Tady vzniká nejčastější chyby, kdy makro nefunguje. Negunguje proto, že je špatně umístěné. Makra se dají spouštět více způsoby. Například stisknutím tlačítka (Click) nebo dvojitým stisknutím tlačíta (DblClick) nebo taky například pohybem myši přes tlačítko (MouseMove). Vědecky se tomu říká řízení pře události.

Stisknutí tlačítka je událost, která spustí Macro1. (Pozor, to makro musí existovat.)

Dvojité stisknutí tlačítka je událost, která spustí Macro2

No a když máte nějaké ktratší makro, pak jej můžete napsat rovnou do události, jak jsem to udělal dole já.

Tak probádejte jak se s tímto oknem zachází. Zas tak složité to není a jestli se naučíte programovat prvky ActiveX, pak se zařadíte mezi mistry.

*

Kdyby se vám první pokus nevyved, tak tady máte kod z mého okna.

*

Private Sub CommandButton1_Click()
Call Macro1
End Sub

Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Call Macro2
End Sub

Private Sub CommandButton1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If CommandButton1.Caption = "CommandButton1" Then
CommandButton1.Caption = "To zíráš,co?"
Else
CommandButton1.Caption = "CommandButton1"
End If
End Sub

Ohodnoceno: 2x
 
Od: martin22
Datum: 13.05.13 15:07

Děkuji, už to trošku chápu, jen pořád nechápu jednu věc, když si vytvořím makro, jak jej mohu k tomu tlačítku přiřadit?

Opravdu mi to nejde do hlavy? Musím nějak zkopírovat složitě ten kód makra nebo se dá nějak přiřadit?

Pokud se dá přiřadit, tak prosím jak?

Mockrát děkuji za trpělivost se mnou.

Datum: 13.05.13 16:53
avatar

Tak to vezmeme od začátku.

Vyberte vaše tlačítko a stiskněte knoflík View Code, který máte v menu. Jestli knoflík View code nikde nevidíte, pak stiskněte pravé tlačítko myši a uvidíte ho hned.

VBA vám skočí rovnou do obsluhy události Click. Tak jak je ukázáno na obrázku v horním okně.

Mezi tyto dva řádky co vidíte v horním okně, ručně dopište volání vašeho makra.

Příklad první : Jestli se vaše makro jmenuje Makro1, pak mezi řádky dopište

Call Makro1

Příklad druhý : maker může být víc. Pak je volejte postupně, jak vidíte v dolním okně.

Call Makro1

Call Makro2

Call Makro3

To je to celé. Stisk tlačítka spustí vaše Makro1 a všechna případná ostatní.

Ohodnoceno: 2x
 
Od: martin22
Datum: 14.05.13 09:08

Skvělé, povedlo se, jste v tom fakt dobrý, každý v tom dělat neumí.

Moc vám děkuji za mou trpělivost.

Datum: 14.05.13 12:54
avatar

haha. Dík. Naučil jsem se, protože jsem musel. A můžu vám říct, že vůbec není špatné umět to, co neumí vůbec nikdo. Pak si můžete začít klást podmínky.

Ale zpátky k VBA. Jak jsem povídal, otevírá se před vámi nový svět. Skutečný mistr neumísťuje ovládací prvky na plochu, ale na formulář UserForm.

Tak si ho zkuste vytvořit. Formulář se otevírá metodou Show.

Vložte formulář a pak zadejte do kódu toho vašeho tlačítka na ploše

UserForm1.Show

Ohodnoceno: 0x
 
Od: martin22
Datum: 14.05.13 21:59

Tak a už jsem opět úplně ztracen, nevím jak jste se tam dostal a udělal to, prostě bych to potřeboval od začátku popsat, promiňte nejsem v tom vůbec zběhlý :(

Od: martin22
Datum: 14.05.13 22:01

Tak nakonec vím jsem se do té nabídky dostal, jen nevím co to je? Co jste tím chtěl prosím říci? Co to umí?

Děkuji

 

Datum: 15.05.13 13:06
avatar

tady už začíná skutečně profesionální programování Windows.

To co vidíte dole na obrázku, je program psaný ve VBA. Na jeho počátku byl právě takový UserForm, který jsem vám včera ukázal.

Na formulář umístíte prvky které potřebujete, vymyslíte kódy a procedury, připojíte, vyzkoušíte, otestujete a pošlete do světa.

(A necháte si za to dobře zaplatit, protože nemáte konkurenci.) *frajer*

Tak vám radím, pilně studujte.

Ohodnoceno: 2x
 
Od: martin22
Datum: 20.05.13 21:37

Děkuji, to už je na mě mnoho nechápu to co to umí?

Poté bych se vás chtěl zeptat jelikož vidím že se v tom dost vyznáte, když mám udělané makro pro jedno tlačítko a vytvořím si 10 tlačítek, jak to udělat aby další makro udělalo tu samou operaci jen o nějký řádek níže tam kde je umístěno tlačítko. Jde to makro nějak jednoduše zkopírovat a upravit tam jen řádky?

Vím že jsem to kdysi u těch ovládacích prvků dělal a šlo to, však jestli časem zaniknou tak to v nich již nechci dělat.

Děkuji mockrát

Datum: 21.05.13 08:14
avatar

haha. To co vidíte na obrázku, je geometrické zadání pro plechový úhelník, který se dole přišroubuje k betonu a z boku na něj se přivrtávají stěnové panely. Zadání je variabilní. Dá se změnit délka, šířka, výška, pozice první díry od kraje, počet a tvar děr atd. Nic složitého. Rozdíl je v tom, že když takový úhelník děláte ručně, potřebujete asi 15 minut času. Když přinutíte vaše PC, aby ho vypočítal a udělal za vás, pak jste hotový za 10 vteřin i s výkresem a s programem pro NC stroj, který ten úhelník bude dělat.

No ale zpátky k vaší otázce na konci.

Založte nové téma, protože vaše otázka je na delší povídání.

Ukážu vám, k čemu vlastně jsou ty závorky na konci názvů maker.

Sub Macro1()

Sub Macro2()

Ohodnoceno: 0x
 
Od: martin22
Datum: 07.05.13 20:43

Děkuji,

celé jsem to přeinstaloval a ono to už chodí, musel jsem tam doinstalovat i ovládací nástroje.

Chtěl bych se zeptat zda budete vědět k čemu se používají ty "ovládací prvky formuláře" a "active X"?

V čem se to liší?

Děkuji

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.