vaikea excel ongelma päivämäärissä

Olen tekemässä maksuvalmiusexceliä. Ainoaksi ongelmaksi on muodostunut miten voi kopioida kuukausia kahvalla. Eli ekassa solussa on päivämäärä muodossa toukokuu 11, seuraava kesäkuu 11, mutta kun yritän kopioida kahvalla, eipä onnistukaa. Miten tuollaisen voi kopioida niin , että voin kopioida sen vuoteen 2021 asti. Onko ideoita?
10230
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Korjaan, siis miten teen kopioitavan kaavan, että kun kirjoitan ensimmäiseen vaikka maaliskuu 11 se ampuu koko taulukon täyteen seuraavia kuukausia ilman vetokahvaa. Anteeksi sekoiluni.

Äänestä

  • kunde kirjoitti:

    Kunde ihan tuosta ei ollut kyse. Vaan miten tehdä kaavan, joka ilman raahaamista tekee saman eli kirjoitat elokuu 11 niin se osaa allaoleviin kavoihin kirjoitetulla funktiolla luoda sarjan elokuu 11 , syyskuu 11, lokakuu 11, marraskuu 11 ...ja sitten kun tulee uuusi laskelma laitan ekaan soluun esim. tammikuu 12 ja sitten se se taas osaa ampua seuraavat kuukaudet.

    Äänestä

eihäm tommosta ookaan joka osaa lukea sun ajatukset ja laittaa ne sarakkeeseen...
jos haluat niin makrolla voi tehdä aktiivisesta solusta alkaen (oletuksena nyt sitten alaspäin...) antamastasi päiväyksestä alkaen loppupäiväykseen kuukausittain päiväykset ja muuttaa ne muotoon elokuu 11, syyskuu 11
tommostako haluat....

Äänestä
  • jep. Nyt pääsit kärryille Kunde. Eli tismalleen sama asia kuin normi kaavoissakin eli miten saa kaavalla tehtyä sen, että kun syötän ekaan soluun tammikuu 11 ja laitan seuraavaan soluun kaavan. =A1 1 tulis helmikuu 11 jne.

    Äänestä

  • pete-vnt kirjoitti:

    jep. Nyt pääsit kärryille Kunde. Eli tismalleen sama asia kuin normi kaavoissakin eli miten saa kaavalla tehtyä sen, että kun syötän ekaan soluun tammikuu 11 ja laitan seuraavaan soluun kaavan. =A1 1 tulis helmikuu 11 jne.

    täyttää aktiivisesta solusta alaspäin valittujen päiväysten väliset kuukaudet

    moduuliin...

    Sub TäytäKuukaudet()
    Dim Alku
    Dim Loppu
    Dim i As Long
    Dim testi
    Application.ScreenUpdating = False
    uusi1:
    Alku = Application.InputBox("Anna aloitus pvm muodossa 17.06.2011")
    If Not IsDate(Alku) Then
    MsgBox "päiväys virheellinen"
    Alku = ""
    GoTo uusi1
    End If
    uusi2:
    Loppu = Application.InputBox("Anna lopetus pvm muodossa 17.06.2011")
    If Not IsDate(Loppu) Then
    MsgBox "päiväys virheellinen"
    Loppu = ""
    GoTo uusi2
    End If

    testi = MsgBox("Täytetäänkö kuukaudet väliltä " & Alku & " - " & Loppu & "?", vbInformation vbYesNo)
    If testi = 6 Then
    ActiveCell = Alku
    For i = 1 To DateDiff("m", Alku, Loppu)
    ActiveCell.Offset(i, 0) = DateSerial(Year(ActiveCell.Offset(i - 1, 0)), Month(ActiveCell.Offset(i - 1, 0)) 1, Day(ActiveCell.Offset(i - 1, 0)))
    Next i
    Range(ActiveCell, ActiveCell.Offset(i - 1)).NumberFormat = "mmmm yy"
    End If
    Application.ScreenUpdating = True
    End Sub

    Keep EXCELing
    @Kunde

    Äänestä

  • kunde kirjoitti:

    täyttää aktiivisesta solusta alaspäin valittujen päiväysten väliset kuukaudet

    moduuliin...

    Sub TäytäKuukaudet()
    Dim Alku
    Dim Loppu
    Dim i As Long
    Dim testi
    Application.ScreenUpdating = False
    uusi1:
    Alku = Application.InputBox("Anna aloitus pvm muodossa 17.06.2011")
    If Not IsDate(Alku) Then
    MsgBox "päiväys virheellinen"
    Alku = ""
    GoTo uusi1
    End If
    uusi2:
    Loppu = Application.InputBox("Anna lopetus pvm muodossa 17.06.2011")
    If Not IsDate(Loppu) Then
    MsgBox "päiväys virheellinen"
    Loppu = ""
    GoTo uusi2
    End If

    testi = MsgBox("Täytetäänkö kuukaudet väliltä " & Alku & " - " & Loppu & "?", vbInformation vbYesNo)
    If testi = 6 Then
    ActiveCell = Alku
    For i = 1 To DateDiff("m", Alku, Loppu)
    ActiveCell.Offset(i, 0) = DateSerial(Year(ActiveCell.Offset(i - 1, 0)), Month(ActiveCell.Offset(i - 1, 0)) 1, Day(ActiveCell.Offset(i - 1, 0)))
    Next i
    Range(ActiveCell, ActiveCell.Offset(i - 1)).NumberFormat = "mmmm yy"
    End If
    Application.ScreenUpdating = True
    End Sub

    Keep EXCELing
    @Kunde

    wow..mikä temppu.

    Suurkiitos Kunde, oon ihaillu jo vuosia sun osaamista ja taas ei voi muuta kuin kehua. Toimii todella hyvin..Siihen ekaan soluun jäi se syötetty päivämäärä, miten senkin sais muotoiltuu samallatavalla , kuin kaikki muutkin eli samaan formaattiin kesäkuu 11 heinäkuu 11 jne. vai saako sitä?

    Äänestä

  • pete-vnt kirjoitti:

    wow..mikä temppu.

    Suurkiitos Kunde, oon ihaillu jo vuosia sun osaamista ja taas ei voi muuta kuin kehua. Toimii todella hyvin..Siihen ekaan soluun jäi se syötetty päivämäärä, miten senkin sais muotoiltuu samallatavalla , kuin kaikki muutkin eli samaan formaattiin kesäkuu 11 heinäkuu 11 jne. vai saako sitä?

    joo bugi oli , muuttuja oli väärää tyyppiä sille ekalle solulle(String kun pitäs olla Date)...
    Pikkuvika ja helppo korjata. Kumma, kun en itse huomannut testatessa tota eroa...

    ActiveCell = Alku
    ActiveCell = CDate(Alku)

    mutta tossa korjattu versio

    Option Explicit
    Sub TäytäKuukaudet()
    Dim Alku
    Dim Loppu
    Dim i As Long
    Dim testi
    Application.ScreenUpdating = False
    uusi1:
    Alku = Application.InputBox("Anna aloitus pvm muodossa 17.06.2011")
    If Not IsDate(Alku) Then
    MsgBox "päiväys virheellinen"
    Alku = ""
    GoTo uusi1
    End If
    uusi2:
    Loppu = Application.InputBox("Anna lopetus pvm muodossa 17.06.2011")
    If Not IsDate(Loppu) Then
    MsgBox "päiväys virheellinen"
    Loppu = ""
    GoTo uusi2
    End If

    testi = MsgBox("Täytetäänkö kuukaudet väliltä " & Alku & " - " & Loppu & "?", vbInformation vbYesNo)
    If testi = 6 Then
    ActiveCell = CDate(Alku)
    For i = 1 To DateDiff("m", Alku, Loppu)
    ActiveCell.Offset(i, 0) = DateSerial(Year(ActiveCell.Offset(i - 1, 0)), Month(ActiveCell.Offset(i - 1, 0)) 1, Day(ActiveCell.Offset(i - 1, 0)))
    Next i
    Range(ActiveCell, ActiveCell.Offset(i - 1)).NumberFormat = "mmmm yy"
    End If
    Application.ScreenUpdating = True
    End Sub
    Keep EXCELing
    @Kunde

    kiitti palautteesta ;-)

    Äänestä

Musta tuntuu, että ainoa keino tehdä haluamasi on ohjelmointi.
Kahvasta kopiointi onnistuu kyllä, esimerkiksi seuraavasti:
Kirjoitat ensimmäiseen soluun Tammikuu 11 (vuosi).
Muotoilet solun sisällön
- Aloitus-välilehden
- Lukumuotoilu-pudotusvalikon
- Lisää numeromuotoja -komennolla esiin tulevassa valintaikkunassa.
Valitse luokka Oma ja kirjoita Laji-kenttään kkkk vv.

Sen jälkeen voit kopioida arvon vetämällä kahvaa toisella hiiren painikkeella ja valitsemalla pikavalikosta viimeisen käskyn. Tee esiin tulevassa valintaikkunassa Yksikkö-kohdassa vielä valinta Kuukausi.

Äänestä

Laitat A2:een =päiväys(vuosi(a1);kuukausi/(a1) 1;päivä(a1)) ja sitten vedät sen alas.

Äänestä

Kommentoi aloitusta


pete-vnt kirjoitti:

Olen tekemässä maksuvalmiusexceliä. Ainoaksi ongelmaksi on muodostunut miten voi kopioida kuukausia kahvalla. Eli ekassa solussa on päivämäärä muodossa toukokuu 11, seuraava kesäkuu 11, mutta kun yritän kopioida kahvalla, eipä onnistukaa. Miten tuollaisen voi kopioida niin , että voin kopioida sen vuoteen 2021 asti. Onko ideoita?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu