< návrat zpět

MS Excel


Téma: Změny v sešitu rss

Zaslal/a 5.11.2014 1:06

Ahojte, rád bych se zeptal na jednu zapeklitost..

Je možné, aby excel zaznamenal každou změnu v sešitě, na zvláštní list, kde by vypisoval jméno uživatele, datum a čas změny a následně dané upravy vrátil ? V podstatě by stačilo, kdyby uživatel vyplňil nějakou buňku, aby se hodnota buňky smazala a zůstal jen záznam o úpravě..

Předem děkuji za nápady.

Zaslat odpověď >

Strana:  1 2   další »
icon #022155
eLCHa
Tím, že existuje VBA je možné téměř cokoliv. Já osobně to nezapisuji do dalšího listu, ale do textového souboru. Vaše zadání ovšem trochu nechápu - chcete zaznamenat změnu a tu změnu potom vrátit? A ono se s tím bude nějak pracovat? Asi by to chtělo rozvést...citovat
#022160
avatar
Ahojky, snad ti to pomůže. Toto vložit do modulu listu a na např: "List8" by se měly zaznamenat změny. Akci zpět to nevím.

Kdyby to šlo i nějak jinak, budu rád za každý nápad.

Dim OldVal, Pozice
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
OldVal = Target
Pozice = Target.Address
NewVal = Target.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range, i, radek
Dim JmenoPC ', JmenoExcel

Set KeyCells = Range("F1:NG366") ' *** hlídaná oblast ************
JmenoPC = Environ("UserName")
'JmenoExcel = Application.UserName
NewVal = Target.Value

If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then

radek = 1 'nastaveni radek jako 1
For i = 1 To List8.Cells.SpecialCells(xlLastCell).Row
If List8.Cells(i, 1) <> "" Then
radek = radek + 1
End If
Next

List8.Cells(radek, 1).Value = Format$(Date, "dd/mm/yyyy")
List8.Cells(radek, 2).Value = Format$(Now, "hh:nn:ss")
List8.Cells(radek, 3).Value = JmenoPC
List8.Cells(radek, 4).Value = Pozice
List8.Cells(radek, 5).Value = OldVal
List8.Cells(radek, 6).Value = NewVal


End If
End Sub
citovat
#022175
avatar
No, vpodstatě je to jen kontrola toho, zda se mi někdo snaží v sešitě dělat bordel, vize je taková, že když se bude soubor nějak jmenovat, nechci aby se v něm dělaly úpravy a když ano, tak abych se o tom dozvěděl. Úpravy budou možné jen v případě, že se soubor přejmenuje = udělá se jeho kopie. Je to jen proto, abych mohl dát za uši tomu, co mi tu dělá čurbes :)

Každopádně díky za část kódu, bohužel bez té zpětné úpravy mi to moc nepomůže.citovat
icon #022176
eLCHa
Předpokládám, že se jedná o pokračování minulého dotazu.
Pořád platí - uložte sešit jako šablonu.
Pokud nevyhovuje - uložte sešit pouze pro čtení (jakýmkoliv způsobem) a nemusíte se bát a vymýšlet komplikovanosticitovat
icon #022177
avatar
Ospravedlňujem sa, že sa do toho pletiem, ale nestačilo by v uvedenom prípade uložiť súbor chránený heslom pre úpravy: F12->Nástroje->Možnosti->Obecné možnosti->Heslo pre úpravy? Áno, iste, ochranu heslom je v prípade Excelu (po verziu 2010 vrátane) pomerne ľahké prelomiť, ale toto pokiaľ niekto zvláda, tak bude zvládať i prípadné odstránenie záznamov z nejakého logu, pokiaľ tento nebude ukladaný v mieste, ku ktorému dotyčný nemá prístup. Pokiaľ by som to mal riešiť ja (zabránenie úprav v súbore iným užívateľom), tak by som volil hore uvedený postup - z mojich kolegov by takúto ochranu dokázal prekonať maximálne jeden, ale je fakt, že okolo mňa žiadni počítačoví géniovia nesedia :)

edit: než som to dopísal, tak ma elcha predbehol, no a elchovi by som ja osobne v otázkach excelu veril :)citovat
#022178
avatar
To Elcha: V podstatě ano, jedná se o stejný soubor, jako v předešlém dotazu. Snažím se to postupně dát kompletně dohromady a nechci vás zatěžovat tím, že sem budu sáhodlouze psát, co všechno má sešit umět a čekat, že mi to někdo napíše, něco málo zvládnu sám a tak na tom dělám postupně.

Se šablonami nemám zkušenosti, ale šablona se musí mezi šablony přidat na každém účtě jednotlivých PC, je tak, nebo se pletu ? Pak by to pro mne byl problém.

Co se sešitů uložených jen pro čtení týká, tak to jsem již zkusil, ale není nic jednoduššího, než rozkliknout vlastnosti a odškrtnout, což se mi tu už stalo..

Také tu nejsou zrovna počítačoví nadšenci, ale víte jak, dokud to nebude pořešené tak, aby se tam nikdo nedostal, aniž by to lovil pomocí googlu, tak s tím budou problémy pořád.citovat
icon #022179
avatar
Co se sešitů uložených jen pro čtení týká, tak to jsem již zkusil, ale není nic jednoduššího, než rozkliknout vlastnosti a odškrtnout, což se mi tu už stalo..
Neplatí pre postup zaheslovania, ktorý som uviedol vo svojom predošlom príspevku :)citovat
#022180
avatar
To Al:
Já vím a díky za nápad, ale to také nevyhovuje, protože se sešit musí dát upravit, ale až po zkopírování.. buďto přez průzkumníka, nebo přez menu ( save as ). Momentálně mě jiné řešení nenapadá..citovat
icon #022183
eLCHa
Mno, asi takhle.
Každý zápis do logu spustí překalkulování souboru. Každá úprava hodnoty spustí opět překalkulování. Pokud tam máte 5 vzorců, tak to nevadí - ale pokud jich tam budou tisíce, bude to znát. Každý zápis do logu zvyšuje velikost souboru. Toto jsou některé důvody, proč to řeším přes textový soubor.

Pokud jde o to, že stačí odkliknout vlastnosti - to je jasné, ale předpokládám, že toto uživatelé záměrně dělat nebudou. Nepodceňujte je, ale ani nepřeceňujte. Proč by to dělali. Přínos bude v tom, že sešit bude jen pro čtení a při pokusu o uložení ho to upozorní a se ho to zeptá na nový název. Totéž, pokud to provedete přes zaheslování úprav. Tady se mi ale občas stane, že o tu vlastnost přijde a musím zaheslovat znovu.

Pokud to budete sledovat kódem - je úplně stejně snadné řešení jak to obejít a nemusím ani mazat log, jak psal AL. Prostě zastavím sledování událostí. Jeden příkaz a nemusí být ani úmyslný, stačí chyba někde v kódu.

A teď se Vás zeptám - pokud jsem Vám opravoval kód v minulém vlákně, myslíte, že budete schopen uhlídat spíše verzi pro čtení (protože zcela určitě budete mít zálohu a budete si ukládat i starší verze, pokud by v té nové něco nefungovalo správně a v případě potřeby "pokažený" soubor nahradíte správným) nebo verzi řešenou kódem. Neberte to osobně, každý jednou začínal - já mám soubor vytvářený a laděný 10 let a i tak se tam někdy objeví nějaká chyba, která mi zastaví události.

Btw - pokud chcete zjistit, kdo soubor pokazil - kliknete pravým tlačítkem a kouknete na vlastnosti = "Naposledy uložil"citovat
#022226
avatar
No, co se týká toho překalkulování, tak to by vadit nemuselo, většinou se jedná o pár hodnot, ale je pravda, že s tou velikostí by to nemuselo být zcela ideální, ten textový soubor by tedy byl asi ideálnější..

Co se vlastností týká, tak bohužel budou a už se mi to i stalo, prý to některé jedince při kopírování obtěžuje. Hold každému se člověk nezavděčí..
Co se sledování pomocí kódu týká, tak to samozřejmě jednoduše zastavit lze, což je pravda, avšak lidé kteří s tímto pracují a budou pracovat neovládají excel dost na to, aby používali vzorce, natož aby zastavili běžící kód. Je tu jen jeden takový a ten s tím problém nemá, proto mi to přišlo jako nejlepší řešení.

No a k vašemu dotazu. Jakmile bude sešit hotový a připraven k použití, záloha samozřejmě bude, pokud by byl se sešitem jakýkoliv problém, všichni budou vědět, kde je záloha, přičemž já budu mít na svém účtě ještě druhou zálohu, ke které mám přístup jen já. Sešit už se dále vyvíjet nebude, takže nějaká speciální péče a sledování nebude třeba.

Pokud vám šlo o to, že nebudu schopen sešit nějak upravit, či opravit, tak to je možné, avšak každý kousek kódu, který použiji, ten si také projdu, abych věděl, jak daný kód funguje.

Btw.. o vlastnostech samozřejmě vím, ale protože se sešit otevírá několikrát denně, je dost pravděpodobné, že již nezjistím, kdo změnu způsobil. Navíc se jedná o soubor, který je na síťovém disku, takže bez uživatelského jména znám jen datum a čas.citovat

Strana:  1 2   další »

Uživatelské menu

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

Menu

On-line nástroje

Formulář Faktura

Formulář Faktura IV

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

Aktivní diskuse