Makro jolla muuttaa dd.mm.yyyy hh:mm:ss -> hhmm (text)

Viestiketju alueella 'Ohjelmointi' , aloittaja JarkkoV, 19.09.2017.

  1. JarkkoV

    Rekisteröitynyt:
    19.09.2017
    Viestejä:
    2
    Moi,

    Minkälaisella makrolla on mahdollista muuttaa date esim. 29.10.2017 22:30:00 muotoon 2230 ?

    Oon yrittänyt kaikenlaista viritelmää, mutta jostain syystä:
    1. makroa nauhoittaessa homma onnistuu formaattia muuttamalla, poistamalla charactereita oikealta ja vasemmalta sekä korvaamalla :
    2. kun makron ajaa niin heittää "PM" "AM" sen mukaan onko ajankohta aamulla/illalla.
    On paljon mahdollista että yritän tuota liian vaikealla tavalla...

    -JarkkoV
     
  2. iSteel

    Rekisteröitynyt:
    17.12.2012
    Viestejä:
    331
    Tarkoitatko ihan Windowsin komentorivin makroa vai jotain muuta ? Epäilen että on jotain muuta mutta laitan nyt varoiksi.

    Mulla on skripti joka muuttaa päivän haluamaani muotoon:
    set %datetest%=%date:~9,4%-%date:~6,2%-%date:~3,2%
    echo %datetest%

    Tulostaa date-komennon pulauttaman "ke 20.09.2017" muodossa 2017-09-20.

    Aika haluamaasi muotoon menisi:
    set timetest=%time:~0,2%%time:~3,2%
    echo %timetest%

    (Ottaa time-komennon tulosteesta 0:sta merkistä 2 eteenpäin ja sitten 3:sta merkistä 2 eteenpäin ja tallentaa timetest-muuttujaan).
     
    Viimeksi muokattu: 20.09.2017
  3. Mogwai

    Rekisteröitynyt:
    24.10.2002
    Viestejä:
    233
    Koska ei ollu mitään mainintaa ympäristöstä/kielestä/what ever, niin päätin sitten, että kaipaat winkkariin battia:

    set MaaginenMakroVariable=29.10.2017 22:30:00
    set MaaginenMakroVariable=%MaaginenMakroVariable:~0,-3%
    for /f "tokens=1,* delims= " %%a in ("%MaaginenMakroVariable%") do set MaaginenMakroVariable=%%b
    set MaaginenMakroVariable=%MaaginenMakroVariable::=%
    echo %MaaginenMakroVariable%
    set MaaginenMakroVariable=

    ja suomenenttuna tuo:
    1 aseta muuttujaan pvm ja aika
    2 poista 3 viimeistä merkkiä
    3 jätä muuttujaan jäljelle kaikki välilyönnin jälkeinen
    4 poista kaksoispiste
    5 näytä muuttujan sisältö
    6 tyhjennä muuttuja
     
    Viimeksi muokattu: 20.09.2017
  4. JarkkoV

    Rekisteröitynyt:
    19.09.2017
    Viestejä:
    2
    Kiitos vastauksista!
    Jeps, unohtui mainita että tarkoitan excel -makroa.

    -Jarkko
     
  5. joonate

    Rekisteröitynyt:
    21.07.2002
    Viestejä:
    442
    Jos excelin solun data on jo excelin ymmärtämässä muodossa, eli "datetime" niin ei tuohon makroa tarvitse, vaan ihan solun muotoilulla "tmm".
     
  6. murmur

    Rekisteröitynyt:
    29.12.2001
    Viestejä:
    6 141
    Testaa text funktiolla konvertointia datetime solutyypistä johonkin muuhun muotoon.
    A1: 29.10.2017 22:30:00 <- solun format-maski datetime
    B1: =TEXT(A1; "ttmm") <- suomenkielisen excelin hours:minutes maskaus
     

Jaa tämä sivu

Alibi
Anna
Deko
Dome
Erä
Hymy
Kaksplus
Kippari
Kotilääkäri
Kotiliesi
Koululainen
Ruoka.fi
Parnasso
Seura
Suomen Kuvalehti
TM Rakennusmaailma
Tekniikan Maailma
Vauhdin Maailma
Golfpiste
Vene
Nettiauto
Ampparit
Plaza
Muropaketti