Pozdravljeni
Imam excel zvezek, ki mi služi kot vzorec. Vanj ne dovolim shranjevanja.
V proceduri "Workbook_Open" izpišem sporočilo in še uredim nekaj nastavitev.
Zdaj bi pa rad ta zvezek odptl iz VBA kode. To znam. Moti pa v tem primeru sporočilo in prepoved shranjevanja. V proceduri "Workbook_Open" ne znam ugotoviti, ali je bil zvezek odprt iz VBA ali z Excelom.
Ali obstaja kakšna možnost, da pri ukazu "Set WB = Workbooks.Open(File)" podam nek parameter, s katerim bi v potem proceduri "Workkbooks_Open" ugotovil da je odprt iz VBA kode.
ps.
V nekem drugem zvezku (prosesu) imam včasih potrebo po dopolnitvi vzorca. Takrat to sporočilo moti. Če bi lahko vedel, da sem zvezek odprl iz VBA kode, bi lahko tudi krmilil prepoved shranjevanja.
Lep pozdrav in hvala za pomoć
Drago
Open excel datoteke iu VBA
Re: Open excel datoteke iu VBA
Pozdravljeni,
Moram priznati, da ne razumem kaj natančno počnete oz. zakaj to počnete; zato vam bom raje kar odgovoril na vprašanji:
Moram priznati, da ne razumem kaj natančno počnete oz. zakaj to počnete; zato vam bom raje kar odgovoril na vprašanji:
- Ne, ne morete vedeti kdo je odprek delovni zvezek; ali uporabnik ali neka druga VBA koda
- Vsak zvezek lahko z VBA odprete v načinu branja; torej tako da popravki niso dovoljeni:
Koda: Izberi vse
Workbooks.Open Filename:=pot_do_zvezka, ReadOnly:=True ` ali če želite z zveskom še kaj početi Dim zvezek As Workbook Set zvezek= Workbooks.Open(Filename:=pot_do_zvezka, ReadOnly:=True)
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Open excel datoteke iu VBA
Očitno sem preveč kompliciral z opisom. Enostavno želim vedeti, kdo je zvezek odprl. To me zanima samo, če je zvezek odprt iz VBA kode.
Sem pa našel posredno rešitev:
Vsebina StatusBar se prenese/ostane v novo odprti zvezek.Pri dogodku "Workbook_Open()" enostavno preverim StatusBar.
Sem pa našel posredno rešitev:
Koda: Izberi vse
Application.StatusBar = "Odprl Administrator" ' Indikacija, kdo odpira VZOREC
Set WB = Workbooks.Open(cMapa & "/VZOREC.xlsm") ' Odprem zvezek VZOREC
Application.StatusBar = "" ' Zbrišem informacijo