< návrat zpět

MS Excel


Téma: DNES() - aktualizace při každém otevření sešitu rss

Zaslal/a 28.2.2013 11:39

RozmyAhoj lidi.

Používám funkci DNES() pro automatické vložení datumu (např.: =KDYŽ(A2="";"-";DNES()).
Takto nemusím při vyplňování tabulky ručně psát datum.
Bohužel při každém otevření sešitu vždy dochází k aktualizaci datumu i v řádcích, kde jsem zapisoval v předchozích dnech.
Jde to nějak ošetřit, aby při zápisu 27.2.2013 naskočil datum, ale aby při otevření sešitu 28.2.2013 se neaktualizoval?
Sešit bude uložen na síťovém úložišti a budou k němu přistupovat různí uživatelé, kterým bude uzamčením povolena pouze základní editace některých buněk.
Dík za radu...

stop Uzamčeno - nelze přidávat nové příspěvky.

#011924
Rozmy
Přidávám vzorový soubor.
Příloha: zip11924_oko-bezpecnosti.zip (9kB, staženo 38x)
citovat
#011926
Stalker
CTRL+; nestačí?citovat
#011927
avatar
Případně bys musel asi přes nějaké makro a vkládat tam datum natvrdo, např. přes funkci "Now()".
P.citovat
icon #011928
avatar
Spôsobov existuje niekoľko, ničmenej, sám používam niečo podobné, kedy dnešný dátum pridávam k záznamu, ktorý tvorím, dátum sa mi zapisuje do stĺpca H v riadku, do ktorého zapíšem v stĺpci A nejakú hodnotu. Keď, tak si to douprav - kód je potrebné vložiť do kódového okna listu, v ktorom to cheš používať:

Private Sub Worksheet_Change(ByVal target As Range)
Dim Oblast As Range, Isect As Range
Set Oblast = Range("A6:A65536") 'definuje oblasť, zmena ktorej iniciuje zápis dátumu do zvolenej bunky
Set Isect = Application.Intersect(target, Oblast)
If Not Isect Is Nothing Then
If Isect <> "" Then 'test na reťazec, pokiaľ je prázdny, dátum v korešpondujúcej bunke sa zmaže (else)
target.Offset(, 7) = WorksheetFunction.RoundDown(Now, 0) 'zapisuje dátum o 7 stĺpcov vpravo od bunky, ktorá inicializovala spustenie kódu po otestovaní, či sa nachádza v oblasti Oblast
Else: Cells(target.Row, 8).ClearContents
End If
End If
End Sub

Použitá je funkcia Nyní (Now) ale je to prakticky to samé pre Dnes (Today). Rutina má ešte jednu podstatnú výhodu, a to tú, že eliminuje výskyt volatilnej funkcie Dnes v súbore (volatilným funkciám je dobré sa vyhýbať, pokiaľ to je možné).

Edit: Ešte je potrebné stĺpec, do ktorého sa má horeuvedeným makrom zapisovať dátum (v mojom prípade stĺpec H) sformátovať na dátum, najlepšie asi dopreducitovat
#011931
Opičák
Asi bych použil Pavlusův návrh natvrdo dosadit datum a to automaticky při zápisu do sloupce C. Ale jak zde uvedeno, je mnoho způsobů jednoduchých i složitých.
Příloha: zip11931_oko-bezpecnosti_makro.zip (15kB, staženo 38x)
citovat
icon #011932
avatar
Opička, máš tam chybu, za prvé, zapisuje to do nesprávneho riadku. To sa dá ale opraviť, miesto:

Cells(ActiveCell.Row, 2) = Now()

tam treba napísať:

Cells(Target.Row, 2) = Now()

Okrem toho sú tam ale dve ďalšie záležitosti, ktoré môžu použitie komplikovať: Now nie je to isté, čo Today (to samozrejme tiež ide riešiť zaokrúhlením na celé číslo u Now) a ďalej, nerieši to situáciu, kedy omylom niečo niekam zapíšem a potrebujem následne zmazať.
Zhrnuté: Mnou navrhované riešenie pokladám v tomto prípade neskromne za lepšie, ale pokiaľ sa Rozmy rozhodne pre Tvoje, brániť mu nebudem.citovat
#011933
avatar
A čo takto?

Treba vymazať bunku A1
Příloha: zip11933_uloz.zip (12kB, staženo 35x)
citovat
#011935
avatar
Alebo takto.
Dátum sa ukladá v bunke A1
Příloha: zip11935_uloz.zip (12kB, staženo 32x)
citovat
icon #011936
avatar
Marjankaj, pmn sa tvoje riešenie míňa so zadaním, v krátkosti: je potrebné aktuálny dátum zapisovať do riadku, do ktorého sú vkladané nejaké hodnoty.
Riešenie som dal, Rozmy, pokiaľ nespolieha na to, že to dostane naservírované na striebornom tanieri, si môže upraviť môj kód...citovat
#011952
Rozmy
Tak jsem vyzkoušel vámi navržená řešení a super je to od "AL" . Nicméně i to Opičákovo si tu schovám pro případně pozdější použití jinde.
Jsem na makra absolutní střevo - umím si akorát nahrát opakované činnosti, ale úprava kódu už je pro mě dost složitá věc.
Dost mi pomohly ty komentáře v kódu, takže jsem si to upravil tak, aby fungovalo podle mých představ.
Díky vám všem za snahu 10citovat

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