Stránka 1 z 1

Excel makro smazání grafu s tlačítkem makra

Napsal: 08 bře 2010 13:51
od davidt
Zdravím,

Mám problém s jedním makrem a prosím o pomoc.

Mám sešit se 4 listy s daty (seznam zboží a různé údaje k němu, např. prodeje, stav skladu, atp.) a z nich vytvořím graf na zvláštním listě (vždy pro jeden řádek, tj. jeden druh zboží).

Na list s grafem jsem umístil tlačítka pro vytvoření dalšího a předchozího grafu (z dalšího/předchozího řádku na listech s daty) a přiřadil makro, které po stisku tlačítka smaže stávající list a vytvoří nový graf.

Problém je v tom, že občas (nechápu proč ne vždy???) excel ohlásí chybu a celý spadne. Když vynechám tu část s mazáním původního grafu, tak nepadá, proto předpokládám, že je problém s tím, že makro smaže list, ze kterého je samo spuštěno. Naopak, když spustím makro na vytvoření grafu z obsahu, tak nepadá.

Celý excel spadne bez upozornění, ale když jedu krok po kroku, vznikne chyba, když se vytvoří nový graf, pak tlačítko "Další" a má se přiřadit makro "GrafDalsi" (ActiveChart.Shapes(1).OnAction = "Module1.GrafDalsi").

Chybová hláška je: run-time error '-2147417848(80010108)', Method 'OnAction' of object 'Shape' failed

Ale nejde mi do hlavy, proč se třeba 10 grafů vytvoří a pak to u dalšího spadne.

Otázka je v zásadě ta, jestli to jde nějak jednoduše obejít. Mě napadá jedině nevytvářet nový graf, ale změnit pouze vstupní data stávajícího grafu. Ale radši bych vytvořil celý graf znovu, pro případ, že by si někdo ten původní graf upravil, aby se další graf vytvořil zase podle původní šablony.

Re: Excel makro smazání grafu s tlačítkem makra

Napsal: 08 bře 2010 18:32
od navstevnik
Pokud chces zabranit zmene grafu, lze jej uzamknout. Co se tyce generovani predchoziho ci nasledneho grafu je potom vyhodne pouzit pro hodnoty osy X a Y dynamicka pojmenovana pole a pomoci tlacitek ridit ofset pro tato pole.
Muzes se podivat na modelove reseni v prilozenem sesitu.
Ve veci tve procedury, tezko vestit, mohl byt pripojeny soubor.

Re: Excel makro smazání grafu s tlačítkem makra  Vyřešeno

Napsal: 09 bře 2010 11:10
od davidt
Ten přiložený soubor je pěkný, ale už je to na mě moc složitý, asi bych potřeboval i manuál, abych pochopil jak to funguje :-D

Já jsem vytvořil tohle.

Je toho tam hodně a možná nepřehledné, ale důležité jsou makra VytvoritGraf a GrafDalsi.

Pokud vytvoříš aspoň několik dalších grafů, určitě to spadne.

EDIT: Tak jsem se tím prokousal a nějak to splácal dohromady. Díky, vyřešeno.