Macro za spreminjanje samo časa ali datuma v celici

Pomoč pri delu z MS Excelom
Odgovori
80ris
Prispevkov: 6
Pridružen: Sr Avg 22, 2007 7:21 am

Macro za spreminjanje samo časa ali datuma v celici

Odgovor Napisal/-a 80ris »

Imam tabelo kjer so štiri kolone C, D, E, F. V teh kolonah so datumi z urami, koloni C in D sta enaki, koloni E in F pa enaki po datumu in uri. Se pravi v stolpcu C imam prikazan datum v stolpcu D pa samo čas vendar sta enaka datum in čas v obeh stolpcih. Enako E in F.

Ko dam v pregled tretji osebi pridejo nazaj pač spremenjeni zapisi, ker on vpiše samo datum ali samo uro v pozamezno celico, potem pa excel zapiše svoje ure in datume tam ko jih ni to so začetni datumi 0.01.1900 in čas 00:00:00.

imam takole:

Koda: Izberi vse

          
         C                  D                  E                     F
30.10.2008 12:45:00 30.10.2008 12:45:00 15.10.2008 05:45:00 15.10.2008 05:45:00       




Kako naj naredim makro, da bi mi iz stolpca D prepisal samo uro v stolpec C iz stolpca C pa samo datum v stolpec D. Ker datum je sigurno pravilen v C ura pa v D. Enako velja za E in F stolpca ter vsako vrstico posebej seveda.


Se mi zdi da je tole kar trd oreh, samo za vas profije verjetno ni nevem kako.

lp
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Če prav razumem (upam) potem to niti ni trd oreh ;).

Da dobiš posamezno stvar iz datuma uporabiš funkcije:

Day()
Month()
Year()
Hour()
Minute()
Second()

Koda: Izberi vse

Sub prenesiDatum()
Dim datum As Date

datum = Range("D1").Value

Range("C1").Value = Day(datum) & "." & Month(datum) & "." & Year(datum)
End Sub
Če pa želite, da ura v celici C1 ostane, potem na koncu vrstice dodajte še podatek o času v celici C1.
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Moje mnenje je, da so makri samo zadnje zatočišče, ko ni nobene druge možnosti. V vašem primeru je bolje, da uporabnikom dovolite pisati v kolone A..D, tisto kar pa vi potrebujete dalje pa raje "izračunajte" v drugih kolonah.

V vašem primeru to pač pomeni, da recimo v koloni M, ki jo lahko tudi skrijete pred uporabnikom pač združite datum iz A in čas iz B:

Koda: Izberi vse

=INT(A1)+MOD(B1;1)
lp,
Matjaž Prtenjak
Administrator
80ris
Prispevkov: 6
Pridružen: Sr Avg 22, 2007 7:21 am

Odgovor Napisal/-a 80ris »

Hvala admin tole bo pravo, pa še brez makrota.
Sam formula mi ni jasna niti približno, kako to deluje?

No sam da dela.

lp
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Ja makro je res tista zadnja možnost.

Ampak meni tudi ni jasna tale funkcija. Sicer sem pogledal opis in vem, da je to nekaj glede Excelovih datumov ampak zakaj ne bi enostavno napisali

Koda: Izberi vse

=A1+B1
:?: :?: :?:
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

kljuka13 napisal/-a: Ampak meni tudi ni jasna tale funkcija.
Hm... kaj pa če se potrudite in poskušete razumeti, kaj naredi oz. kako to naredi opisana funkcija. Toda pred tem si (tudi v tem forumu) poglejte kako Excel sploh obravnava datume ;)
kljuka13 napisal/-a: Sicer sem pogledal opis in vem, da je to nekaj glede Excelovih datumov ampak zakaj ne bi enostavno napisali

Koda: Izberi vse

=A1+B1
:?: :?: :?:
Mogoče zato, ker bi bilo to povsem napačno...
lp,
Matjaž Prtenjak
Administrator
kljuka13
Prispevkov: 257
Pridružen: Po Sep 10, 2007 4:29 pm
Kraj: Maribor

Odgovor Napisal/-a kljuka13 »

Hmm... Obravnava jih s številkami. Najprej datum potem decimalna vejica in ura.

Sem pogledal in sedaj ugotovil. Moja funkcija bi pravilno delovala samo, če bi v A1 bil samo datum in v B1 samo ura. Sedaj, ko pa je oboje pa ne gre.

In sedaj razumem tudi vašo funkcijo.

INT - zaokroži navzdol v A1 torej če je vpisano 39591,62994 je rezultat 39591 - hkrati dobimo s tem tudi datum. Druga funkcija pa deli naprimer 39585,62994 z ena in vrne ostanek 0,62994 - hkrati pa je to ura iz celice B1.


Kak' simp'l.
[img]http://shrani.si/f/3t/YL/4W2P37B9/office.gif[/img]
[img]http://shrani.si/f/12/aa/1rt1wj6i/1/userbardionaea.gif[/img]
[img]http://shrani.si/f/3D/nN/3RQySBCl/vista-copy.gif[/img]
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Res je! Jap najlepše stvari so najpreprostejše - samo kaj ko so nemoralne ali pa redijo... bi rekla MM :)
lp,
Matjaž Prtenjak
Administrator
Odgovori