Excel - spusteni makra zmenou bunky Vyřešeno
Napsal: 19 čer 2013 12:14
Uz se tu podobny problem resil, ale bohuzel jde o neco jineho nez je ten muj...
Mam dva listy. Na listu1 se zadavaji hodnoty do bunek C20:C27, na listu2 se tyto hodnoty zobrazi v bunkach B2:10 (rozumej B2='list1'!C20) a pak se v dalsich bunkach provadi vypocty. Fungovat by to melo tak, ze uzivatel meni list1 a na list2 se ani nepodiva, ale hodnoty z listu2 pak pouziju v dalsich vypoctech (treba na listu3)
Nastavil jsem si makro pro Resic
a nastavil jsem si zachyceni udalosti
Pokud zmenim jakoukoliv bunku (i kdyz nesouvisi s vypoctem) v listu2, tak udalost je zachycena a makro probehne v poradku.
Pokud zmenim hodnoty v listu1, automaticky se mi prepocitaji veskere vypocty v listu2. Dokonce je zachycena i udalost Worksheet_calculate (zkousel sem to pomoci Msgbox), ale bohuzel se makro nespusti.
Toto je moje prvni zkusenost s makry a VBA takze nevim kde je problem. Mate nejake napady proc se to (ne)deje, a co s tim? Budu Vam nadosmrti vdecny
Kdyby to neslo jinak, mohl bych vypocty z listu2 presunout na list1, ale nevim jak zachytit udalost a spustit makro pokud se zmeni obsah pouze nekolika konkretnich bunek (aby se nespoustel solver pri kazde zmene v listu)
--- Doplnění předchozího příspěvku (19 Čer 2013 13:55) ---
Tak problem byl nejspis v tom ze se Resic spoustel na spatnem listu.
Sice se ted pri zmene tech nekolika bunek na listu1 samo prepne okno na list2, probehne vypocet resice, a zase se okno prepne na list1, ale to uz je detail. Sice nevim jak to obejit aby se list vizualne nepripinal pri kazde zmene ridich bunek, ale dulezite je ze vse pracuje, tak jak ma
--- Doplnění předchozího příspěvku (19 Čer 2013 14:07) ---
Odstranil jsem zachytavani udalosti a makro spoustim tlacitkem. Sice to vyzaduje naprogramovani kontrolni bunky (aby uzivatel vedel jestli je vypocet v poradku, nebo musi spustit makro), ale aspon se makro nespousti pri kazde zmene ridicich bunek.
Doufam ze to pomuze dalsim lidem kteri se setkaji s podobnym problemem
Mam dva listy. Na listu1 se zadavaji hodnoty do bunek C20:C27, na listu2 se tyto hodnoty zobrazi v bunkach B2:10 (rozumej B2='list1'!C20) a pak se v dalsich bunkach provadi vypocty. Fungovat by to melo tak, ze uzivatel meni list1 a na list2 se ani nepodiva, ale hodnoty z listu2 pak pouziju v dalsich vypoctech (treba na listu3)
Nastavil jsem si makro pro Resic
Kód: Vybrat vše
Sub Makro_iterace()
'
' Makro_iterace Makro
' iterace uhlu ny
'
SolverOk SetCell:="$G$30", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$11", Engine _
:=1, EngineDesc:="GRG Nonlinear"
SolverSolve UserFinish:=True
End Sub
a nastavil jsem si zachyceni udalosti
Kód: Vybrat vše
Private Sub Worksheet_Calculate()
Call Makro_iterace
End Sub
Pokud zmenim jakoukoliv bunku (i kdyz nesouvisi s vypoctem) v listu2, tak udalost je zachycena a makro probehne v poradku.
Pokud zmenim hodnoty v listu1, automaticky se mi prepocitaji veskere vypocty v listu2. Dokonce je zachycena i udalost Worksheet_calculate (zkousel sem to pomoci Msgbox), ale bohuzel se makro nespusti.
Toto je moje prvni zkusenost s makry a VBA takze nevim kde je problem. Mate nejake napady proc se to (ne)deje, a co s tim? Budu Vam nadosmrti vdecny
Kdyby to neslo jinak, mohl bych vypocty z listu2 presunout na list1, ale nevim jak zachytit udalost a spustit makro pokud se zmeni obsah pouze nekolika konkretnich bunek (aby se nespoustel solver pri kazde zmene v listu)
--- Doplnění předchozího příspěvku (19 Čer 2013 13:55) ---
Tak problem byl nejspis v tom ze se Resic spoustel na spatnem listu.
Kód: Vybrat vše
Sub Makro_iterace()
'
' Makro_iterace Makro
' iterace uhlu ny
'
Sheets("List2").Select
SolverOk SetCell:="$G$30", MaxMinVal:=2, ValueOf:=0, ByChange:="$G$11", Engine _
:=1, EngineDesc:="GRG Nonlinear"
SolverSolve UserFinish:=True
Sheets("List1").Select
End Sub
Sice se ted pri zmene tech nekolika bunek na listu1 samo prepne okno na list2, probehne vypocet resice, a zase se okno prepne na list1, ale to uz je detail. Sice nevim jak to obejit aby se list vizualne nepripinal pri kazde zmene ridich bunek, ale dulezite je ze vse pracuje, tak jak ma

--- Doplnění předchozího příspěvku (19 Čer 2013 14:07) ---
Odstranil jsem zachytavani udalosti a makro spoustim tlacitkem. Sice to vyzaduje naprogramovani kontrolni bunky (aby uzivatel vedel jestli je vypocet v poradku, nebo musi spustit makro), ale aspon se makro nespousti pri kazde zmene ridicich bunek.
Doufam ze to pomuze dalsim lidem kteri se setkaji s podobnym problemem
