Ahoj,
prosím o radu.
Mám soubor kde mám vložené makro Workbook_Open. To má za úkol načíst data z DB, aktualizovat kont. tabulky, odeslat emaily a zavřít soubor.
Tento soubor mám napojený na naplánované ulohy ve win.
Dá se nějak upravit, aby při spuštění jinak, než z naplánované ulohy se makro WB_open nespustilo?
Když chci soubor editovat, tak je makro tak rychlé, že ho mnohdy nestihnu zastavit pomocí ESC
Díky za pomoc
Jirka
EXCEL- Otevření souboru bez spuštění makra Workbook_open Vyřešeno
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
Makro WorkBook_Open si můžeš ručně krokovat.
Otevři sešit, povol makra (pokud máš střední zabezpečení), makro proběhne, vlez do VBA a tam si ho ručně odkrokuj.
Otevři sešit, povol makra (pokud máš střední zabezpečení), makro proběhne, vlez do VBA a tam si ho ručně odkrokuj.
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
Zkuste parametr /a
z přík. řádku:
start excel soubor /a
z přík. řádku:
start excel soubor /a
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
No jde o to, že excel otvírám 1000 krát za směnu, takže zabezpečení mám vypnuto. Takže po spuštění se rovnou makro spustí a než ho stihnu přerušit, tak se vykoná a ukončí a zavře se soubor. Takhle probíhá několik pokusů, než se to povede.
Napadlo mě zda je možné např. pomocí cmd příkazu otevřít excel. soubor s makry zakázanými (např: přetáhnutím souboru na zástupce)
Napadlo mě zda je možné např. pomocí cmd příkazu otevřít excel. soubor s makry zakázanými (např: přetáhnutím souboru na zástupce)
-
- Pohlaví:
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
a) Existovaly pokusy, které s pomocí API funkce ve VBA testovaly parametry příkazového řádku Excelu při spuštění. Nedělal bych to.
b) Nejrozumnější mi přijde před voláním z tasks nastavit proměnnou v INI souboru nebo položku registru, kterou si procedura testuje a po ukončení úlohy vrátit do původního stavu. To při ručním spuštění dělat nebudete a procedura tedy neproběhne.
Poznámky:
Kromě Workbook_Open (WO) existuje ještě Auto_Open (AO), která nastává pouze při manuálním otevření sešitu. Jsou-li v sešitu obě, programové spuštění sešitu vyvolá jako první WO, poté AO. Vám je tohle info ale k ničemu (nebo nevím, jak obrátit tuhle chaloupku "vchodem k sobě".)
Úloha nejspíš ani není řešitelná volitelným parametrem procedury (s výchozí nastavenou hodnotou).
b) Nejrozumnější mi přijde před voláním z tasks nastavit proměnnou v INI souboru nebo položku registru, kterou si procedura testuje a po ukončení úlohy vrátit do původního stavu. To při ručním spuštění dělat nebudete a procedura tedy neproběhne.
Poznámky:
Kromě Workbook_Open (WO) existuje ještě Auto_Open (AO), která nastává pouze při manuálním otevření sešitu. Jsou-li v sešitu obě, programové spuštění sešitu vyvolá jako první WO, poté AO. Vám je tohle info ale k ničemu (nebo nevím, jak obrátit tuhle chaloupku "vchodem k sobě".)
Úloha nejspíš ani není řešitelná volitelným parametrem procedury (s výchozí nastavenou hodnotou).
-
- Level 3
- Příspěvky: 452
- Registrován: leden 12
- Bydliště: Země, bohužel...
- Pohlaví:
- Stav:
Offline
- Kontakt:
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
Podobnou věc jsem už řešila a jediné schůdné řešení pro mě bylo vytvoření "oslího můstku" v podobě VB scriptu který otevře sešit excelu a spouští makro.
V sešitu si makro přesuň do normálního modulu, nějak ho pojmenuj (řeba "start") a na něj se pak bude odkazovat následující script.
Do textového souboru si vlož následující kód. Uprav v něm název sešitu, jméno makra a soubor pak ulož do stejné složky jako je spouštěný sešit.
Koncovku souboru si přepiš na vbs a plánovanou úlohu si nastav na tento script.
Nebo pokud sešit chceš otevírat ručně aby se spustilo makro, spustíš tento script.
Když budeš chtít sešit upravit jednoduše ho otevřeš přímo a makro se nespustí.
V sešitu si makro přesuň do normálního modulu, nějak ho pojmenuj (řeba "start") a na něj se pak bude odkazovat následující script.
Do textového souboru si vlož následující kód. Uprav v něm název sešitu, jméno makra a soubor pak ulož do stejné složky jako je spouštěný sešit.
Koncovku souboru si přepiš na vbs a plánovanou úlohu si nastav na tento script.
Nebo pokud sešit chceš otevírat ručně aby se spustilo makro, spustíš tento script.
Když budeš chtít sešit upravit jednoduše ho otevřeš přímo a makro se nespustí.
Kód: Vybrat vše
Option explicit
Dim XLApp, strPath
strPath = CreateObject("Scripting.FileSystemObject").GetParentFolderName(WScript.ScriptFullName) 'umístění skriptu
Set XLApp = CreateObject("Excel.Application")
XLApp.Visible = true
XLApp.Workbooks.Open strPath & "\sesit.xlsm" 'sešit ke spuštění
XLApp.Run "start" 'název makra ke spuštění
Set XlApp = Nothing
Pokud je to vše.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
Vše co znám z VBA jsem se naučila tady na fóru, na Office.lasakovi, david-zbiral.cz a hlavně hledáním na googlu.
SZ není poradna, na pokládání dotazů je tu fórum. Děkuji.
-
- Level 4.5
- Příspěvky: 1547
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open Vyřešeno
Mě se oba způsoby pouští ať otevírám sešit jak chci.
pokud by to tak bylo, že Auto_Open proběhne jen při ručním otevření tak by to šlo obejít takto
Do modulu ThisWorkBook vložit
a do normálního modulu vložit
S tím, že místo hlášek by bylo makro.
Ale našel jsem supr jednoduchou věc jak zabránit spuštění maker WorkBook_Open a Auto_Open
http://www.jkp-ads.com/articles/preventopenevent.asp
....při kliknutí na soubor držet shift
pokud by to tak bylo, že Auto_Open proběhne jen při ručním otevření tak by to šlo obejít takto
Do modulu ThisWorkBook vložit
Kód: Vybrat vše
Private Sub Workbook_Open()
Call WOOpen
End Sub
a do normálního modulu vložit
Kód: Vybrat vše
Public taskopen As Boolean
Sub WOOpen()
taskopen = True
End Sub
Private Sub Auto_Open()
If taskopen = True Then
MsgBox "yes task open"
Else
MsgBox "no task open"
End If
taskopen = False
End Sub
S tím, že místo hlášek by bylo makro.
Ale našel jsem supr jednoduchou věc jak zabránit spuštění maker WorkBook_Open a Auto_Open
http://www.jkp-ads.com/articles/preventopenevent.asp
....při kliknutí na soubor držet shift
-
- Pohlaví:
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
Já vlastně ani nevím proč, ale já drženému Shiftu kdovíproč nevěřím. Pravděpodobně, že mi párkrát makro prošlo.
VBScript je další teoretické řešení, které se mi neosvědčilo v rámci naplánovaných úloh. Leckdy jsme ráno zjistili, že skript prostě otevíraný sešit nezavřel a tak visel Excel na pozadí mezi spuštěnými aplikacemi.
Zkoušel jsem teď Auto_Open v Excelu 2010, a pokud otevíráme sešit přes Workbooks.Open, tak tato neproběhne. Ale chce to vyzkoušet z tasks, jak se to chová.
VBScript je další teoretické řešení, které se mi neosvědčilo v rámci naplánovaných úloh. Leckdy jsme ráno zjistili, že skript prostě otevíraný sešit nezavřel a tak visel Excel na pozadí mezi spuštěnými aplikacemi.
Zkoušel jsem teď Auto_Open v Excelu 2010, a pokud otevíráme sešit přes Workbooks.Open, tak tato neproběhne. Ale chce to vyzkoušet z tasks, jak se to chová.
Re: EXCEL- Otevření souboru bez spuštění makra Workbook_open
Díky všem za rady.
Vyzkouším a uvidím u čeho zůstanu.
Přes noc mě napadlo ještě řešení tím (možná to taky někomu pomůže) , že budu kontrolovat umístění souboru. Protože soubory nasazené na task mám umístěny v solo složce a při editaci je vždy kopíruju mimo tuto složku-na plochu (co kdyby něco). Takže nastavit podmínku, pokud soubor není ve složce xy, tak ukončit makro.
Vyzkouším a uvidím u čeho zůstanu.
Přes noc mě napadlo ještě řešení tím (možná to taky někomu pomůže) , že budu kontrolovat umístění souboru. Protože soubory nasazené na task mám umístěny v solo složce a při editaci je vždy kopíruju mimo tuto složku-na plochu (co kdyby něco). Takže nastavit podmínku, pokud soubor není ve složce xy, tak ukončit makro.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
-
EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw) - 2
- 4748
-
od Riviera kid
Zobrazit poslední příspěvek
02 zář 2024 16:21
-
-
- 2
- 12163
-
od Snekment
Zobrazit poslední příspěvek
29 led 2025 15:05
-
- 11
- 4524
-
od Kminek
Zobrazit poslední příspěvek
23 úno 2025 02:14
-
-
Nedetekován signál (černá obrazovka) při spuštění PC
od zerbngr » 01 črc 2024 17:37 » v Problémy s hardwarem - 13
- 4614
-
od petr22
Zobrazit poslední příspěvek
03 črc 2024 10:36
-
-
- 10
- 2967
-
od Riviera kid
Zobrazit poslední příspěvek
včera, 06:56
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host