< návrat zpět

MS Excel


Téma: jméno uživatele sešitu otevřeného pro zápis. rss

Zaslal/a 5.11.2015 19:13

Při otevírání společného sešitu první uživatel otevře sešit pro zápis. Další uživatelé sešit otevřou jen pro čtení a jsou informováni o jménu prvního uživatele. Někdy ovšem jméno chybí. Prosím o radu jak v tomto případě postupovat, tedy jak zjistit kdo sešit pro zápis otevřel.

Zaslat odpověď >

#027870
avatar
v office 2013: možnosti-obecné-vlastní nastavení microsoft office-uživatelské jméno.citovat
#027893
avatar
Všichni uživatelé mají nastavené jméno. Používají excel 2007, 2010 a 2013. Někteří se připojují přes VPN.citovat
#027894
avatar
Přímý způsob zjištění mne nenapadá. Zkuste následující fintu: při otvírání sešitu (událost Workbook_Open) zkuste zapsat do všeobecně dostupné buňky jméno (nebo jeho přidělený nick) pro aktuálního uživatele. To se povede jen tomu prvnímu (ostatní uživatelé už to nedokážou). Tím bude vždy jasno, kdo právě velí. Zápis jména je ale nutno ošetřit On Error Resume Next, aby další uživatelé nedostávali chybové hlášky.citovat
#027904
avatar
Děkuji, je to dobrý nápad.citovat
#027956
avatar
Problémem ovšem je zákaz maker. Ten nedovolí kódu VBA pracovat a zase nevím nic. Ví někdo co s tím?
Použitý kód:
Private Sub Workbook_Open()
If Not ActiveWorkbook.ReadOnly Then
Worksheets("List2").Range("H8").Value = Environ("username")
Worksheets("List2").Range("H9").Value = Environ("COMPUTERNAME")
ActiveWorkbook.Save
End If
End Subcitovat
#027958
avatar
Kombinace povoleného sdílení sešitu pro změny se současným zákazem maker je stav blízký pokusu o sebevraždu. Samo sdílení je mizerně zabezpečené, protože připouští datové kolize a bez podpory maker se z něj stává jízda na tygru. Kdo chce kam, až se ucho utrhne...citovat
#027960
avatar
Sešit, o kterém je zde řeč, není sdílený. Jeden ho otevře pro zápis a ostatní jen pro čtení. Střídavě do něho zapisují všichni. Kdo chce zapisovat musí požádat držitele zápisu o ukončení práce. Je to sice kostrbaté, ale vyhovuje to. Sdílení kvůli obsahu nelze použít. To, v čem je problém, je, že někdy chybí jméno uživatele. Zájemce o zápis pak neví koho požádat o ukončení práce. Soudím, že celý problém není pro excel, ale zákazník ...citovat
icon #027966
avatar
http://lmgtfy.com/?q=force+macros+to+be+enabledcitovat
icon #027971
eLCHa
Učinil jsem pokus. Nemám žádný soubor, který by byl sdílený tímto způsobem. Respektive mám, ale jsem 4 a tak není problém si ty lidi obvolat, takže to nemám odzkoušeno. Nicméně jsem na to narazil již několikrát a vždycky jsem si říkal, jestli by to nešlo řešit externě. To mi totiž umožní následující věci:
- mít sešit bez kódu
- mít na pozadí kód, který neustále kontroluje, zda je soubor otevřený, aniž by to ovlivnilo samotnou práci v excelu ("nekonečná" smyčka).

Taky se mi nelíbí onen zápis uživatele do buňky - to totiž znamená nutnost okamžitého uložení sešitu. U malého souboru to problém není, ale u většího už je to viditelná a zbytečná operace. Takže to řeším textovým souborem. To může mít další výhodu, že si ho lze všimnout v adresáři a pro zjištění, kdo má sešit otevřen mi stačí kouknout do texťáku.

No a teď co znamená externě. Je tu možnost napsat si jednoduchou a tedy i spolehlivou aplikaci ve Visual Studiu. To tu nemám, tak jsem to zkusil přes VBScript. Ten lze zase snadno editovat v textovém editoru a rychle upravit na kterémkoliv PC bez nutnosti instalace čehokoliv. Naopak zase používám něco, co je určeno pro krátké a rychlé operace na operaci dlouhodobou a tak nevím, zda se na to lze spolehnout. To je třeba odzkoušet.

Takže ukázka -
Sešit je nutné otevřít poklikáním na soubor scriptu (WorkbookOpen.vbs). Ten zpřístupní pracovní listy a skryje list se zprávou, že takto ne. Poté neustále kontroluje, zda je sešit otevřen. Po jeho uzavření jej ještě jednou skrytě otevře, skryje pracovní listy a zviditelní ten se zprávou a uloží.
Pokud tedy otevřete Sešit1 - nebude možné v něm pracovat. Pro některé - samozřejmě, kdy by chtěl, dokázal by - ale to se prostě nepředpokládá.

Nejdříve je třeba editovat soubor skriptu a upravit cestu k souboru.
Příloha: zip27971_test.zip (7kB, staženo 37x)
citovat
#027973
avatar
Vše stojí a padá s postojem zákazníka k makrům. Pokud je zásadně negativní, bude opravdu obtížné najít nějaké rozumné řešení. Když bude zákazník podezíravý, zamítne i řešení pomocí VBScriptu, protože mu také připadne rizikové (každý program ve VBScriptu je vlastně makrem). Musím znovu zopakovat, že negativní vztah k makrům vyvolává záměrně sám Microsoft, aniž by proto byl jakýkoliv významný důvod.
Víckrát jsem byl před tento problém postaven. V řadě případů jsem uživatele přesvědčil, že se maker bojí zbytečně. A tam, kde to nešlo napřímo, tam jsem šel oklikou přes osobní sešit maker, případně přes doplněk. Tyto nástroje žádná varování o makrech nevydávají, takže zákazník nebyl před nimi nijak varován. Vlk se nažral a koza zůstala celá. Netvrdím, že to bylo zcela důsledné vůči makrům, zato zákazník dostal fungující aplikaci, která se o makrech nezmiňovala.
Svět si přeje být klamán.citovat

Uživatelské menu

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

Menu

Formulář Faktura

Formulář Faktura IV

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

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje