Stránka 1 z 1

Monitorování ukládání sešitu

Napsal: 21 lis 2012 14:57
od Jsimi
Ahoj,
Potřeboval bych poradit, zda je možné monitorovat ukládání sešitu. Objevil jsem možnost monitorovat přístup do sešitu, ale má to jeden háček. Sešit, který potřebuji sledovat otvírají některé osoby jen pro čtení /opatření heslem/ a jiné i pro úpravy. Pokusil jsem se použít toto makro, ale bohužel jakmile se sešit otevře jen pro čtení vyhodí to chybu.

Private Sub Workbook_Open()
Dim PrazdnyRadek As Long
' prvni prazdny radek
PrazdnyRadek = Worksheets("tajny").Cells.SpecialCells(xlCellTypeLastCell).Row + 1
' zapiseme kdo
Worksheets("tajny").Cells(PrazdnyRadek, 1) = Application.UserName
' zapiseme kdy
Worksheets("tajny").Cells(PrazdnyRadek, 2) = Now
' tajny list skryt
Worksheets("tajny").Visible = xlSheetHiden
End Sub

Předem díky za radu

Re: Monitorování ukládání sešitu

Napsal: 21 lis 2012 15:45
od Mirdad69
Ahoj,
to by chtělo použít spíš událost "Workbook_BeforeSave". Ale pokud někdo nepovolí makra, tak to může uložit i bez záznamu, kdo ukládal. Zápis bych povoloval pokud by byla splněna podmínka ActiveWorbook.ReadOnly = False.

Re: Monitorování ukládání sešitu

Napsal: 21 lis 2012 16:24
od Jsimi
Osoby které do sešitu přistupují, nemají téměř žádné potuchy o makrech a navíc bych chtěl, aby se uložení ukládalo do skrytého listu / pravda, dá se snadno zobrazit / a navíc o tom nebudou vědět. Takže pokud bys měl nějaké základní řešení, velmi rád ho uvítám.

Re: Monitorování ukládání sešitu

Napsal: 21 lis 2012 16:36
od Mirdad69
Ten kód je stejný jen to makro se nejmenuje "Workbook_Open" ale "Workbook_BeforeSave".
Kolik má ten sešit listů?
Možná by chtělo, aby se při ukládání souboru makrem pozamykaly sešity a při otevření se odemknou pro změny jen při povolení maker.

Kód: Vybrat vše

Private Sub Workbook_BeforeSave()
Dim PrazdnyRadek As Long
if ActiveWorkbook.ReadOnly = False Then
' prvni prazdny radek
PrazdnyRadek = Worksheets("tajny").Cells.SpecialCells(xlCellTypeLastCell).Row + 1
' zapiseme kdo
Worksheets("tajny").Cells(PrazdnyRadek, 1) = Application.UserName
' zapiseme kdy
Worksheets("tajny").Cells(PrazdnyRadek, 2) = Now
' tajny list skryt
Worksheets("tajny").Visible = xlSheetHiden
EndIf
End Sub


Re: Monitorování ukládání sešitu

Napsal: 21 lis 2012 17:02
od Jsimi
Když jsem zadal ten kód od tebe, tak při pokusu o uložení to hází chybu kompilace hned na prvním řádku.
To zamykání listů je asi zbytečný.

Re: Monitorování ukládání sešitu

Napsal: 21 lis 2012 20:29
od Azuzula
Pokud jde vyloženě o sledování kdo kdy otevřel ten sešit, tak bych využila zápisu do txt souboru ;) je to rychlé a nikdo si ani nevšimne že to makro proběhlo. Jen je potřeba povolit jednu knihovnu a to by mohlo dělat potíže pokud se to bude otevírat na jiným počítači. Ale někde jsem viděla automatickou kontrolu a povolení potřebných knihoven, tak by to tam šlo přidat.

Tak pokud by byl zájem o tuhle možnost, dám dohromady makro.

Re: Monitorování ukládání sešitu

Napsal: 22 lis 2012 06:54
od Mirdad69
Promiň, měly tam být nějaké parametry.