Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak zjistit, kdo otevírá náš Excelovský soubor?
Cílem je vytvořit makro, které do listu (neviditelného) bude zapisovat, kdo přistupuje do tohoto souboru. Takto zněl zajímavý emailový dotaz. VBA kód jsem upravil, aby zapisoval nejen kdo přistupuje (otvírá) soubor, ale také kdy jej otvírá :).
Co tedy bude makro provádět? Pokud někdo otevře náš Excelovský soubor uloží se do skrytého listu jeho jméno (UserName) a čas, kdy tento soubor otevřel.
Následující kód se dá využít ke zjištění jak oblíbené jsou některé naše Excelovské soubory. Případně monitorovat zda pracovníci opravdu se souborem pracují.
Předpokladem je list s názvem tajny.
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
' ulozit
ThisWorkbook.Save
End Sub
Poznámka: V MS Excelu musí být povolena makra.
Pokud je nastavena v VBA vlastnost listu tajny na VeryHiden, nepodaří se nám tento list zobrazit klasicky v Excelu, musí se otevřít VBA
Worksheets("tajny").Visible = xlSheetVeryHiden
Můžeme nastavit lepší formátování data, třeba doplnit o sekundy.
Více informací o tom jak na to, je předmětem jiného článku.
Prezentovaná příklad zdarma ke stažení: Kdo přistupuje do souboru - soubor obsahuje makra.
Článek byl aktualizován: 19.09.2020 11:07
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Přidáno: 10.02.14 14:55
Dobrý den, děkuji za tuto užitečnou "funkci". Měl bych dotaz. Je možné ji upravit tak, aby log o přístupech byl zapsán do jiného souboru (ne na list ve stejném souboru), případně nějak obejít nutnost ručně povolit Makra? Děkuji a přeji hezký den, Štěpán Přibáň
Přidáno: 20.03.14 15:53
Dobrý den, funkce je super. Měl bych dotaz. Je možné ji upravit tak, aby log o přístupech byl zapsán do jiného souboru (ne na list ve stejném souboru), případně nějak obejít nutnost ručně povolit Makra? Děkuji.
Přidáno: 20.03.14 16:59
To Severýn D.: Je možnost, uvede se cesta k souboru do kterého se bude ukládat.
Přidáno: 01.04.14 17:54
Byl by prosím možný nějaký příklad, jak zadat cestu pro zapisování do jiného souboru? Pokoušel jsem se ji do Makra vtělit, ale vždy neúspěšně. Je možné nějak obejít nutnost ručně povolit Makra? Děkuji.
Přidáno: 17.04.14 15:00
Dobrá věc, vylepšil jsem pro zápis do txt - tvořím tak log soubor vztažený k jedné aplikaci v MS Excel.
Přidáno: 17.04.14 20:57
To Lukáš: Klidně můžeta poslat ukázku, určitě se bude někomu hodit.
Přidáno: 25.04.14 07:50
To Pavel:
Public Sub log()
'zapsání uživatele do souboru log.txt
Dim sUserName As String
Dim sUSer As String
sUserName = Environ$("username")
sUSer = Application.UserName
Dim cestasoubor As String
Dim nazevlog As String
Dim lomitko As String
Dim textak As String
cestasoubor = "C:\Users\" & sUserName & "\Desktop"
lomitko = "\"
nazevlog = "log.txt"
textak = cestasoubor & lomitko & nazevlog
Dim soubor As String
Dim cas As String
Dim zmena As String
Dim datum As String
soubor = ThisWorkbook.Path
zmena = FileDateTime(soubor)
datum = Date
cas = Time
Dim zapis As String
zapis = "Naposledy otevřel: " & sUserName & "(" & Replace(sUSer, " ", "") & "), dne " & datum & " v " & cas & ". Naposledy uloženo: " & zmena
Dim file
file = textak
Open file For Append As #1
Print #1, zapis
Close #1
End Sub
Přidáno: 22.06.15 10:05
Dobrý den, velice Vám děkuji přesně toto jsem potřeboval. Je možné ještě do skrytého listu zapsat jak dlouho uživatel s jednotlivými listy pracoval a kdy sešit zavřel?
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2024 |