< návrat zpět

MS Excel


Téma: compile error: sub or function not defined rss

Zaslal/a 8.4.2013 21:05

frantilopaZdravim.
Vie mi niekto poradit s tymto problemom?
Mam tam dve makra.
Jedno funguje pri zmene bunky K1 (pri K1>0 prekopiruje riadok z Harku "Praca EZS", pri K1=0 zmaze tento riadok)
Druhe makro (tlacitko) funguje ako export (zaloha, evidencia) faktury, kde zaznamena v poslednom harku eport a ulozi to niekde (podla zadanej cesty).
Problem, je v tom, ze to K1 funguje a tlacitko funguje, jedine ked zmazem to prve makro ovladajuce K1. Inak mi vzdy vypise error.
Da sa to nejak spojazdnit ?
Vopred DAKUJEM.
F. 4

Příloha: rar12754_spustenie-makra-pod-podmienkou2.rar (47kB, staženo 31x)
stop Uzamčeno - nelze přidávat nové příspěvky.

#012758
avatar
Upřímně, je to tam celé nějaké divné .-).
Kód je pro mě naprosto nepřehledný, takže jsem to nějak moc nezkoumal, ale objevil jsem toto:

1) Nemáš tam dost často definované proměnné, případně je máš definované někde uprostřed kódu apod. Každou proměnnou definuj - na začátku funkce nebo procedury a přiřaď jí datový typ.

2) Využívej tabulátory a s "designem" kódu si trochu pohraj...

3) Problém, který ti to zřejmě způsobuje je v té proceduře "Zlava", kterou máš v modulu. Máš tam "Sub Zlava(riadok)", ale proměnná "riadok" tam absolutně v tom kódu chybí, navíc jí musíš přiřadit datový typ...

Mrkni se, jak se ve VBA vytvářejí procedury.
P.citovat
#012760
frantilopa
Dakujem za radu.
To bude asi na dlhsie, ale prejdem to cele (snad to spojazdnim)...
Este raz Dakujem!
F.citovat
icon #012762
Poki
Musim se priznat, ze jsem to nezkoumal uplne do hloubky a castecne souhlasim s Pavlusem - misty je to velmi podivne napsane, nicmene zase takova katastrofa to neni :-)
Rekl bych, ze by chyba mohla byt zpusobena tim, ze se v ramci procedury volane tlacitkem spusti procedura navazana na zmenu bunky K1.

Proto bych na zacatek procedury tlacitka dal:
Application.EnableEvents = False tento zapis zajisti to, ze bude znemozneno volani procedur spoustenych na zaklade udalosti.
Na konci kodu je pak nutne udalosti znovu 'zapnout'
Application.EnableEvents = Truecitovat
#012763
avatar
@ poki
Áno je to tak
Application.EnableEvents
to vyrieši.
Najprv chcel vyhodiť tlačítko, tak som to naprogramoval na udalosť zmenu v bunke K1. A potom tam to tlačítko zase dal, a tá jeho procedúra tu bunku K1 menila.

Asi by mal tú udalostnú procedúru vyhodiť a dať to späť na tlačítko.

A čo sa týka premennej riadok, tak použitá bola, ale zadávateľ to vyhodil. Nie je treba deklarovať, ak nie je deklarovaná, tak je to typ variant. Pri type integer by sa pár bytov ušetrilo.
Integer 2 byty
Long 4 byty
Variant 16 bytov

Sub Zlava(riadok as integer)citovat
icon #012764
avatar
@marjankaj Nie je treba deklarovať, ak nie je deklarovaná, tak je to typ variant.
len poznámka: platí len v prípade, že nie je nastavená povinná deklarácia premenných, to Ty samozrejme vieš, ale čítajú to tu i osoby, ktoré to nevediacitovat
#012771
frantilopa
Dakujem Vam za rady a ochotu vsetkym!
Ano to K1 bolo povodne cez tlacitko ako pise marjankaj. Potom mi to upravil a tlacitko slo prec. Lenze dal som tam dalsie tlacitko (makro), ktore kopiruje cely Harok a tu vznikol problem, ze to druhe makro sa akosi bije s prvym....
Napadlo ma, ze to tlacitko, ktore vlastne kopiruje cely harok ma problem z bunkou K1... Nie som expert, ale neexsistuje nejaky zapis, ktory by som tam do toho makra vsunul? (ignoroval by pri kopirovani bunku K1). Respektive nedalo by sa to vyriesit tak, ze to tlacitko by nekopirovalo cely Harok ale riadky od 2 po napr. 5000 a tym by sa vynechal riadok 1 v ktorom je bunka K1 s ktorou je problem...
Neviem. 7citovat
#012817
frantilopa
Zdravim Vas.

Dakujem Vsetkym za pomoc a ochotu.
Skusil som to co mi napisal Poki:
Application.EnableEvents = False
Application.EnableEvents = True


PARADA!!!
9 9 9
POKI - este raz D A K U J E M !!!
Funguje... 1citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje