Díky "bláznovi" Jeza.m, který radí co může.
Já z těch jeho příspěvků také čerpám a je to super.
Kéž by bylo více takových "bláznů".
To Jeza.m: vydrž! 
Tak např. skrýt poslední sloupec v sešitu (což je 256-tý) a do druhého řádku vložit počet dní pro testování.
Při prvním průchodu nebude datum obsahovat nic.
Tedy buňka IV1 bude prázdná a buňka IV2 bude obsahovat počet dní. Sloupec IV skrýt, uzamknout sešit heslem a vložit makro.
If Cells(1, 256) = Empty Then
List1.Unprotect "heslo" ' odemkutí listu heslem "heslo" k provedení změn
Cells(1, 256) = Date ' vložení aktuálního data
List1.Protect "heslo" ' uzamčení sešitu heslem "heslo"
End If
If Date > Cells(1, 256) + Cells(2,256) Then
List1.Unprotect "heslo" '...odemknout list s heslem "heslo" - můžeš nastavit cokoliv
Cells.Locked = True '...zamknout buňky
List1.Protect "heslo" '...zamknout list s heslem "heslo" - můžeš nastavit cokoliv
ActiveWorkbook.Save ' uložení sešitu se změnami
End If
Ovšem pokud si někdo stáhne sešit znovu zase mu bude fungovat určitý počet dní.
Samozřejmostí je i zaheslování projektu! Jinak si to každý otevře a heslo ví.
Sice nevidím důvod odemykat list se vzorci, ale budiž.
Pokud by byly uzamčeny buňky se vzorci a volné jen ty, do kterých může uživatel zapisovat data, pak lze vše vyřešit zápisem datumu při otevření sešitu do určité "skryté" buňky na listu a ten pak porovnávat.
Poté zamknout všechny buňky v listu (Cells.Locked=True) a automaticky ukládat sešit při uzavření.
Takhle to nepůjde. Excel neumí takto jednoduše uložit vybrané sloupce do txt souboru.
Lze to vyřešit celkem elegantně, kde si vytvoříte list s Vámi vybranými sloupci (tedy A, C a E) a tento list pak pomocí dialogu uložíte do txt.
Pro Vaše makro přiřadíte:
jmenoTXT = "prevod" 'jméno listu ve kterém jsou vybrané sloupce - tento list samozřejmě musíte vytvořit
jmeno = ActiveSheet.Name
jmenoSouboru = Application.GetSaveAsFilename(fileFilter:="Text Files (*.txt), *.txt")
If jmenoSouboru <> False Then
Sheets(jmenoTXT).Select
ActiveSheet.SaveAs Filename:=jmenoSouboru, FileFormat:=xlTextMSDOS, CreateBackup:=False
Sheets(jmeno).Select
End If
Nejjednodušší způsob je nahrát si makro, které to provede (Příkaz Nahrát makro) a pak jej přiřadit k tlačítku formuláře.
Range("J4:J6, E14:G16, J14:J16, C18:C36, G18:J36").Select ' vybere Vámi zadanou oblast buněk
Selection.ClearContents ' vymaže data
Řešení je v příloze.
Předpokládám, že jednotlivé druhy budou zapisovány do řádků, proto je výhodnější vyhodnotit každý řádek na konci výpisu.
1. vyhodnocení řádku
2. přenesení údajů do dalšího listu.
Zkusím nakopnout.
možné řešení:
1. vyhledat nejmenší hodnotu v dané oblasti (funkce MIN)
2. tuto hodnotu vyhledat v daném řádku a uložit pozici sloupce (funkce POZVYHLEDAT)
3. uložit z horního řádku (jména obchodů) název (funkce POSUN)
Myslím, že vlastní učení pomůže více než jen někým napsat vzorce a ono to nějak funguje.
Aha 2007. Hledáte soubory na disku, že?
Pokud pomůže: http://support.microsoft.com/kb/920229
Řešení: http://support.microsoft.com/kb/185601/
Domnívám se, že problém spíše než v knihovně bude v nastavení účtů.
Jak jsou nastaveny jednotlivé účty???
Předpokládám, že ten účet na kterém to chodí, je ve skupině administrators. Ten na kterém to nechodí bych tipoval na Users.
Nebylo by jednodušší a inteligentnější sloupce nebo řádky jednoduše nezobrazovat (skrýt)?
I to excel umí
Oblíbený formulář Faktura byl vylepšen a rozšířen.

Více se dočtete zde.
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.