< návrat zpět

MS Excel


Téma: Makro nefunguje při spuštění shift+ctrl+pismeno rss

Zaslal/a 16.4.2013 11:12

Ahoj, potřebuju radu.
Když fungující makro spustím klávesovou zkratkou CRTL+SHIFT+písmeno, v průběhu makra se mi správně nezavře makrem otevřený dokument. Navíc ani žádná chybová hláška, zavřu dokument ručně a nic nepokračuje, jde to jako do ztracena. Ale stačí makro spustit jen CTRL+písmeno a funguje. Čím to asi je?
Více k tomu: makro cyklem nahrazuje jména. Otevře "banku_jmen", načte do pole, zavře, návrat k sešitu, kde bylo spuštěno, nahrazení. Chci ve více naráz otevřených sešitech pouštět stejné makro, nejlíp zkratkou. Když je stejný název makra a stejná kláv.zkratka, to nejde, po .close nenajde správně původní dokument, nahradí jinde. Zavrhnul jsem několik jiných možností, vyšlo mi nejlíp mít
v každém souboru stejné makro s jiným názvem a jinou kláv.zkratkou, tady jsem ale ztroskotal na tom problému se SHIFT. Nemám tolik volných zkratek jen s CTRL. Souborů, listů, jmen je moc moc.
V ukázce je potřeba otevřít jen soubory.xlsm, banku_jmen si otevírá makro.

Příloha: zip12893_test.zip (224kB, staženo 21x)
Zaslat odpověď >

#012894
avatar
edit: Excel 2007,2010. V jednom souboru v ukázce je chyba u zavírání souboru a makra zde mají shodná jména. Vývoj.verze. 8citovat
icon #012895
eLCHa
Zavrhnul jsem několik jiných možností, vyšlo mi nejlíp mít
v každém souboru stejné makro s jiným názvem a jinou kláv.zkratkou


Byla v tom i možnost vložit to makro do PERSONAL (nebo doplnku)? Stačila by jedna zkratka, popř. nabídka a v případě opravy by se opravovalo jediné místocitovat
icon #012896
eLCHa
Co znamená?

ActiveWorkbooks.Close

To makro by snad asi nemělo ani fungovat.citovat
#012897
avatar
Zkusil jsem i Personal.xls, tam zase nevím, jak určit ten správný sešit z několika otevřených, kde to makro bude pracovat. A chtěl bych pokud možno řešení jen v rámci souborů, třeba daných na flash když jsem na cizím počítači (zaměst. a tak)
Ale jestli můžu požádat o způsob jak adresovat ten soubor z Personal ...

ActiveWorkbook.Close - to je ta chyba viz. 2.příspěvekcitovat
icon #012898
eLCHa
ActiveWorkbook.Close - to je ta chyba viz. 2.příspěvek

Takže jsem ho zrovna trefil? ;))

Ale jestli můžu požádat o způsob jak adresovat ten soubor z Personal ...
Možností je více. Ale napadá mě

ActiveSheet

nebo ListBox se seznamem otevřených souborů
( určit ten správný sešit z několika otevřených, kde to makro bude pracovat.)
a vybratcitovat
#012902
avatar
Vybírat ze seznamu ten správný soubor. To by nemuselo být ani v Personal, ale i v tom makru v souboru. Ale do toho řešení se mi taky moc nechce, zvyknul jsem si na zkratku a neřešit nic okolo. Já už dýl dělal s každým souborem zvlášť, to je Ok, až když je mám všechny otevřené, je problém.
Já ještě zkusím automatické spuštění makra třeba double-clickem nebo po editac nějaké bunky na začátku listu, jestli se mi to podaří takto zprovoznit. Zatím asi dík za rady...citovat
icon #012906
eLCHa
Zatím asi dík za rady..

Zatím asi není zač ;)citovat
#012934
avatar
Jen pro úplnost, zatím tedy nevím proč je chování makra závislé na tom, jak se spustí (jestli to je vůbec tím).
A potíž jsem vyřešil tak, že makro je stejné v každém souboru, včetně názvu a spouštím ho zavoláním po double-clicku na určité buňky v události sešitu. Takto mi to vyhovuje skvěle.
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Set prunik = Intersect(Target, Range("F1:I1"))
If prunik Is Nothing Then
GoTo Konec
Else
Dotaz = MsgBox("Nahradit jména?", vbYesNo, "Nahrazení")
Select Case Dotaz
Case vbNo
GoTo Konec
Case vbYes
Call zamena_jmen
End Select
Konec:
End If
Range("B2").Select
End Sub
citovat

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse