Zamrznjen čas
Zamrznjen čas
Pozdrav
Imam en problem, ki ga ne znam rešiti, in bi prosil koga na forumu, da mi pomaga.
Ob izpolnjenem pogoju v neki celici bi rad da mi se mi v sosednji celici izpiše čas, kdaj je bil ta pogoj izpolnjen (vpisan).
Primer
v celici A1 vpišem DA, kar je hkrati izpolnjen pogoj, in v celici B1 se mi izpiše čas, ko se je ta vpis zgodil.
Zadevo znam sam rešiti samo na način da v B1 vpišem =IF(A1="DA"; NOW();"") vendar mi ta čas ne ostane "zamrznjen", ko dokument naslednjič ponovno odprem.
Rad bi na nek način zamrznil podatek, kdaj se je izpolnitev pogoja zgodila. Zadevo bi rad rešil z uporabo funkcij in ne makroja.
Hvala za morebitno pomoč.
lp m
Imam en problem, ki ga ne znam rešiti, in bi prosil koga na forumu, da mi pomaga.
Ob izpolnjenem pogoju v neki celici bi rad da mi se mi v sosednji celici izpiše čas, kdaj je bil ta pogoj izpolnjen (vpisan).
Primer
v celici A1 vpišem DA, kar je hkrati izpolnjen pogoj, in v celici B1 se mi izpiše čas, ko se je ta vpis zgodil.
Zadevo znam sam rešiti samo na način da v B1 vpišem =IF(A1="DA"; NOW();"") vendar mi ta čas ne ostane "zamrznjen", ko dokument naslednjič ponovno odprem.
Rad bi na nek način zamrznil podatek, kdaj se je izpolnitev pogoja zgodila. Zadevo bi rad rešil z uporabo funkcij in ne makroja.
Hvala za morebitno pomoč.
lp m
Re: Zamrznjen čas
Pozdravljen
Tole boste dodali pod makro in vklopili makre:
Lp
Tole boste dodali pod makro in vklopili makre:
Koda: Izberi vse
Sub Auto_Close()
'
Range("B1").Value = Range("B1").Value
End Sub
Re: Zamrznjen čas
Brez uporabe makra tega ne boste mogli rešiti, saj se funkcije v Excelu preračunajo vsakič ko je to potrebno in tedaj se vam bo preračunal tudi čas. Rešitev je torej:
- Ali uporaba makra
- Ali ročno kopiranje vrednosti celic namesto njihovih formul
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Zamrznjen čas
Stenly napisal/-a:Pozdravljen
Tole boste dodali pod makro in vklopili makre:LpKoda: Izberi vse
Sub Auto_Close() ' Range("B1").Value = Range("B1").Value End Sub
Hvala za odgovor, bi želel še malo pomoči. Ne znam namreč naslednjega "tole boste dodali pod makre:" Kako se to naredi?
Pa tudi, kaj pa je potrebno za vklop makrojev? Ali se samo nastavi ustrezno visoka (nizka) varnost ali je potrebno še kaj drugega?
(upam da nisem postavil preveč trivialnih vprašanj)
Mimogrede še tole. Če napisan makro rešuje moj problem, kako to da ni nikjer v njem navedene celice A1, saj je tam namreč zapisa pogoj "DA", ki je potreben za to da se v celici B1 izpiše trenutni čas, tako kot sem napisal že v prvem prispevku.
Že vnparej hvala za odgovor lp m
Re: Zamrznjen čas
Razlago boste našli med VBA nasveti.mkralj123 napisal/-a: Ne znam namreč naslednjega "tole boste dodali pod makre:" Kako se to naredi?
Glede na ustrezno izbiro varnsoti so makri omogočeni oz. onemogočeni. Nič drugega ni potrebno storiti. Če ima uporabnik varnost nastaviljeno tako visoko, da so makri onemogočeni so pač onemogočeni. Tega ne morete zaobiti. Če pa je varnost nižja pa je potem odvisno od uporabnika ali bo makre dovolil ali ne. Seveda pa je lahko varnost tudi tako nizka, da so makri izvršljivi že po privzetem...mkralj123 napisal/-a: Pa tudi, kaj pa je potrebno za vklop makrojev? Ali se samo nastavi ustrezno visoka (nizka) varnost ali je potrebno še kaj drugega?
Zakaj bi se pa tega bali... Nihče ne ve vsega. Določene stvari so nekomu trivialne, drugemu pa nepojemljive in seveda obratno! Vprašati ni greh.mkralj123 napisal/-a: (upam da nisem postavil preveč trivialnih vprašanj)
Makro, ki vam ga je zapisal Stenly seavtomatično izvede ob zapiranju delovnega zvezka in tedaj pač "zamrzne" tisto, kar je v celici B1 (torej vaš izračunan čas!)... S to rešitvijo po vsej verjetnosti ne boste zadovoljni, ker:mkralj123 napisal/-a: Mimogrede še tole. Če napisan makro rešuje moj problem, kako to da ni nikjer v njem navedene celice A1, saj je tam namreč zapisa pogoj "DA", ki je potreben za to da se v celici B1 izpiše trenutni čas, tako kot sem napisal že v prvem prispevku.
- Ko boste zaprli zvezek, boste izgubili formulo v B1
- Ko boste vnesli vrednost v celico A1, se vam bo čas sicer zapisal v B1 a če boste zvezek preračunali se bo čas spremenil
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Zamrznjen čas
Na netu sem našel rešitev, ki zgornji problem reši tudi brez uporabe makra. Rešitev ima sicer manjšo "napakico", ki jo bom opisal na koncu...
Naprej v nek modul zvezka z vašim problemom, prekopirajte spodnjo funkcijo:
Nato pa formulo v celici kjer jo potrebujete, spremenite oz. prekopirajte tole
Sedaj se vam celica s formulo ne bo več spreminjala, pa karkoli boste že pač urejali v zvezku.
Pa še o "napakici"...celica s formulo se bo spremenila le v primeru, če bi pobrisali na listu katerikoli cel stolpec ali celo vrstico in pa še, da pobrišete neko območje, ki ste ga izbrali, na sledeči način: Desni klik na območje > Delete..., kjer vas potem vpraša, kam naj pomakne celice!
Lahko pa označen cel stolpec, celo vrstico ali pa označeno območje, brez skrbi pobrišete s pritiskom na tipko Delete na tipkovnici...
lahko, da vam bo ta rešitev ustrezala! saj potem ni treba imeti vklopljeno Izvajanje makrov
Pa še stran, kjer sem našel rešitev:http://www.eggheadcafe.com/software/asp ... hange.aspx
Naprej v nek modul zvezka z vašim problemom, prekopirajte spodnjo funkcijo:
Koda: Izberi vse
Function DateStamp(myCell As Range) As Date
Volatile = False
DateStamp = Now
End Function
Koda: Izberi vse
=IF(A1="DA"; DateStamp(A1);"")
Pa še o "napakici"...celica s formulo se bo spremenila le v primeru, če bi pobrisali na listu katerikoli cel stolpec ali celo vrstico in pa še, da pobrišete neko območje, ki ste ga izbrali, na sledeči način: Desni klik na območje > Delete..., kjer vas potem vpraša, kam naj pomakne celice!
Lahko pa označen cel stolpec, celo vrstico ali pa označeno območje, brez skrbi pobrišete s pritiskom na tipko Delete na tipkovnici...
lahko, da vam bo ta rešitev ustrezala! saj potem ni treba imeti vklopljeno Izvajanje makrov
Pa še stran, kjer sem našel rešitev:http://www.eggheadcafe.com/software/asp ... hange.aspx
lp,
cedra
cedra
Re: Zamrznjen čas
Če pogledate vašo rešitev, boste videli, da ste napisali funkcijo... ki je makro... kar pomeni da je to rešitev z makri ...
In da bi stvar delovala boste morali imeti vklopljene makre
In da bi stvar delovala boste morali imeti vklopljene makre
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Zamrznjen čas
Pozdravljeni1
spodnjo kodo imam v Excelovem zvezku in deluje super oz. je delovala dokler nisem naložil najnovejši MS Office 2013. Zdaj pa mi datuma in časa ne zamrzne več, celo vse že vpisane celice posodobi na trenutni čas in datum. Ali mi lahko kako pomagate, da bi se čas zopet zamrznil tudi v pisarni 2013
Function DateStamp(myCell As Range) As Date
Volatile = False
DateStamp = Now
End Function
spodnjo kodo imam v Excelovem zvezku in deluje super oz. je delovala dokler nisem naložil najnovejši MS Office 2013. Zdaj pa mi datuma in časa ne zamrzne več, celo vse že vpisane celice posodobi na trenutni čas in datum. Ali mi lahko kako pomagate, da bi se čas zopet zamrznil tudi v pisarni 2013
Function DateStamp(myCell As Range) As Date
Volatile = False
DateStamp = Now
End Function
Re: Zamrznjen čas
Pozdravljeni,
Na žalost ste si izbrali "napačno" rešitev, ki je delovala bolj po pomoto, kot zares. Vsa "magija" te funkcije je bila v prvi vrstici (Volatile = False), ki Excelu zaukaže, da mu ni potrebno izračunati te funkcije, ko že ima rezultat. In kot ste sami uvideli oz. je bilo tudi zapisano se je ob določenih pogojih (brisanje celotne vrstice ipd.) preračunala. A kakorkoli, ta funkcije bi se lahko kadarkoli preračunala, saj ste Excelu rekli samo, da mu ni potrebno funkcije preračunati, niste pa mu zaukazali, da je ne sme preračunati! Excel 2013 je pri preračunavanju pač bolj natančen in preračuna vse (tudi če mu ni potrebno )
O teh in podobnih problemih se po spletu odpira veliko tematik in vse rešitve so vedno v tem stilu, kot je bila tista, ki ste jo uporabljali vi. Vse se zanašajo na neke lastnosti Excela ki niso nujno vedno izpolnjene. Največkrat tako, da dovolite rekurzivne funkcije in omejite število rekurzij... Reči želim da so vse rešitev bolj ali manj neki obvozi, ki včasih delujejo včasih ne.
Jaz osebno bi to rešil na drug način, ki zagotovo deluje a je odvisen od konkretnih potreb in to tako, da bi sprogramiral funkcijo Worksheet_Change tako da bi v željene celice zapisala datum samo tedaj, ko je pač izpolnjen tisti pogoj, ki ga iščete. Velika slabost te rešitve pa je, da morate pogoje pač zapisati v VBA in ne znotraj lista... No saj bi se dalo tudi znotraj lista a to zahteva pa res kar precej več dela.
Prilagam vam primer, ki vam v celico B1 zapiše trenutni čas tedaj, ko v celico A1 vpišete x:
Na žalost ste si izbrali "napačno" rešitev, ki je delovala bolj po pomoto, kot zares. Vsa "magija" te funkcije je bila v prvi vrstici (Volatile = False), ki Excelu zaukaže, da mu ni potrebno izračunati te funkcije, ko že ima rezultat. In kot ste sami uvideli oz. je bilo tudi zapisano se je ob določenih pogojih (brisanje celotne vrstice ipd.) preračunala. A kakorkoli, ta funkcije bi se lahko kadarkoli preračunala, saj ste Excelu rekli samo, da mu ni potrebno funkcije preračunati, niste pa mu zaukazali, da je ne sme preračunati! Excel 2013 je pri preračunavanju pač bolj natančen in preračuna vse (tudi če mu ni potrebno )
O teh in podobnih problemih se po spletu odpira veliko tematik in vse rešitve so vedno v tem stilu, kot je bila tista, ki ste jo uporabljali vi. Vse se zanašajo na neke lastnosti Excela ki niso nujno vedno izpolnjene. Največkrat tako, da dovolite rekurzivne funkcije in omejite število rekurzij... Reči želim da so vse rešitev bolj ali manj neki obvozi, ki včasih delujejo včasih ne.
Jaz osebno bi to rešil na drug način, ki zagotovo deluje a je odvisen od konkretnih potreb in to tako, da bi sprogramiral funkcijo Worksheet_Change tako da bi v željene celice zapisala datum samo tedaj, ko je pač izpolnjen tisti pogoj, ki ga iščete. Velika slabost te rešitve pa je, da morate pogoje pač zapisati v VBA in ne znotraj lista... No saj bi se dalo tudi znotraj lista a to zahteva pa res kar precej več dela.
Prilagam vam primer, ki vam v celico B1 zapiše trenutni čas tedaj, ko v celico A1 vpišete x:
Koda: Izberi vse
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celica As Range
Set celica = Intersect(Target, Range("A1"))
If celica Is Nothing Then Exit Sub
If celica = "x" Then Range("B1") = Now
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Zamrznjen čas
Hvala, to pa dela ko ura
Re: Zamrznjen čas
Pozdravljeni,
Moram pohvaliti Vaš forum. Z opisi in nasveti sem si že zelo pomagal. Ker pa sem naletel na težavo in sem nov v uporabi z makroji bi Vas prosil za nasvet.
Uporabil sem to kodo, ki zamrzne čas vnosa, ki zelo lepo deluje kadar je znan 1 pogoj za vnos. Tu pa nastopi moja težava.
Kako popraviti kodo, da bi zapisal čas kadar je vnesen kakršen koli podatek v določenem stolpcu.
Primer:
v stolpec A od vrstice 5 naprej vnašam podatke, ki so lahko števila ali besedilo.
V stolpec B pa bi naj zapisoval čas vnosa.
A B
1B 06.04.2016
2 06.04.2016
B 07.04.2016
Lep pozdrav.
P.s.
Samo tako naprej ker je res zelo v pomoč.
Moram pohvaliti Vaš forum. Z opisi in nasveti sem si že zelo pomagal. Ker pa sem naletel na težavo in sem nov v uporabi z makroji bi Vas prosil za nasvet.
Uporabil sem to kodo, ki zamrzne čas vnosa, ki zelo lepo deluje kadar je znan 1 pogoj za vnos. Tu pa nastopi moja težava.
Kako popraviti kodo, da bi zapisal čas kadar je vnesen kakršen koli podatek v določenem stolpcu.
Primer:
v stolpec A od vrstice 5 naprej vnašam podatke, ki so lahko števila ali besedilo.
V stolpec B pa bi naj zapisoval čas vnosa.
A B
1B 06.04.2016
2 06.04.2016
B 07.04.2016
Lep pozdrav.
P.s.
Samo tako naprej ker je res zelo v pomoč.
Re: Zamrznjen čas
Malce drugače, kot prej:
Koda: Izberi vse
Private Sub Worksheet_Change(ByVal Target As Range)
Dim celica As Range
Set celica = Intersect(Target, Range("A:A"))
If celica Is Nothing Then Exit Sub
If (celica.Row < 5) Then Exit Sub
If celica <> "" Then celica.Offset(0, 1) = Now
End Sub
lp,
Matjaž Prtenjak
Administrator
Matjaž Prtenjak
Administrator
Re: Zamrznjen čas
Hvala, dela kot mora.
Lp
Lp