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?
vaikea excel ongelma päivämäärissä
10
186
Vastaukset
- pete-vnt
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.
- pete-vnt
kunde kirjoitti:
niksinurkasta toka postaus
http://keskustelu.suomi24.fi/node/9847941Kunde 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.
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....- pete-vnt
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.
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- pete-vnt
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
@Kundewow..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ä? 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 ;-)
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.Laitat A2:een =päiväys(vuosi(a1);kuukausi/(a1) 1;päivä(a1)) ja sitten vedät sen alas.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Kalle Palander kertoi fantasioivansa siitä, kuinka Kiira Korpi naisi häntä sträppärillä ahteriin
Sai potkut Yleltä. https://yle.fi/a/74-20140000564926624h Kirppis
Olen muuttamassa paikkakunnalle ja mietin olisiko tälläiselle liikkeelle tarvetta alueella?132365Suomessa eletään liian pitkään
"Ihmisten on kuoltava" Asiantuntija varoittaa: Suomi ei ole valmis siihen, että niin moni elää pitkään: ”Kaiken täytyy1841485Kerotakaa joensuun kontiolahden paiholan laitoksesta jotain
Mun kaveri joutuu paiholan laitokseen nyt lähi aikoina niin voisko ihmiset kertoa minkälaista siellä on tarinoita jne ja191209- 71940
Sun ulkonäkö on
Kyllä viehättävä. Kauniit piirteet. Todella sievät. Ja olemus on ihana. Olet tehnyt vaikutuksen.41877Oletko koskaan
Tavannut/tuntenut ihmistä, jonka kanssa vuosisadan rakkaustarina olisi ollut mahdollinen, mutta joku este tuli väliin?72794Olen niin haaveillut
Sinusta. Ollut hullun rakastunut. Ajatellut kaikkea mitä yhdessä voisimme tehdä. Mutta ei ei yhtään mitään. Usko vaan lo57792En voi ottaa
Jos ikinä aiot ottaa yhteyttä, niin tee se nyt. On aika, kun todella todella tarvitsisin sinua. Naiselle.41732Tuo yksi tampio vielä ilmeisesti kuvittelee
Että joku itkee peräänsä täällä vinkuen jotain utopistista kadonnutta rakkauttaan kaksoisliekit silmissä leiskuen. Pyhä75642