Tällainen lapsellisen helppo juttu osaavalle. Tarkoituksena olisi saada aikaiseksi Makro, mikä lukee läpi koko rekisterin.
Solussa B on päivämäärä, joka pitää ensin muuttaa elettäväksi vuodeksi.
B 09.11.1999 muutetaan C 09.11.2011
Seuraavaksi C 09.11.2011 vähennetään pois 4 kuukautta.
Vähennyksen jälkeen saatu tulos 09.07.2011 siirretään soluun D
Näiden operaatioiden jälkeen varsinainen asia:
E solussa on valmiina vertailu päivämäärä.
Makro vertailee C,D ja E solujen arvoja.
Siis:
B 09.11.1999 > C 09.11.2011
pp.kk pysyvät samana vain vvvv vaihtuu elettäväksi vuodeksi
tulos viedään soluun C
C 09.11.2011 > D 09.07.2011
vähennetään 4 kuukautta solusta C ja tulos viedään soluun D
IF C > E THEN G = ”Myöhässä”
IF D < E THEN G = ”Tulossa”
C 09.11.2011
D 09.07.2011
jos C on suurempi kuin E viedään soluun G ’Myöhässä’
jos D on pienempi kuin E viedään soluun G ’Tulossa’
Solussa B on päivämäärä, joka pitää ensin muuttaa elettäväksi vuodeksi.
B 09.11.1999 muutetaan C 09.11.2011
Seuraavaksi C 09.11.2011 vähennetään pois 4 kuukautta.
Vähennyksen jälkeen saatu tulos 09.07.2011 siirretään soluun D
Näiden operaatioiden jälkeen varsinainen asia:
E solussa on valmiina vertailu päivämäärä.
Makro vertailee C,D ja E solujen arvoja.
Siis:
B 09.11.1999 > C 09.11.2011
pp.kk pysyvät samana vain vvvv vaihtuu elettäväksi vuodeksi
tulos viedään soluun C
C 09.11.2011 > D 09.07.2011
vähennetään 4 kuukautta solusta C ja tulos viedään soluun D
IF C > E THEN G = ”Myöhässä”
IF D < E THEN G = ”Tulossa”
C 09.11.2011
D 09.07.2011
jos C on suurempi kuin E viedään soluun G ’Myöhässä’
jos D on pienempi kuin E viedään soluun G ’Tulossa’
Vastaukset 8
Vanhimmat
Sub Tarkista()
Dim vika As Long
Dim solu As Range
vika = Range("B65536").End(xlUp).Row
For Each solu In Range("B1:B" & vika)
solu.Offset(0, 1) = DateSerial(Year(Date), Month(solu), Day(solu)) ' c-solu
solu.Offset(0, 2) = DateSerial(Year(solu), Month(solu) - 4, Day(solu)) ' d-solu
solu.Offset(0, 2) = solu.Offset(0, 2).Value
Select Case True ' vertailu
Case solu.Offset(0, 1) > solu.Offset(0, 3) 'c>e
solu.Offset(0, 5) = "Myöhässä"
Case solu.Offset(0, 2) < solu.Offset(0, 3) 'd
Kiitos vaivannäöstä. Tällaista herjaa:
Compile error:
Select Case without End Select
Lisäsin:
Case solu.Offset(0, 2) < solu.Offset(0, 3) 'd
sorry, siis lisäsin:
.
.
Case solu.Offset(0, 2) < solu.Offset(0, 3) 'd
Vieläkin sorry.
onko niin, että tämä Suomi24 saitti, sotkeutuu tuohon viimeiseen
Case solu.Offset(0, 2) < solu.Offset(0, 3) 'd
riviin, eikä näytä koodista loppuja?
ei oo eka kerta kun foorumi sekoilee...
nytkin heittelee minne sattuu kun yrittää vastata tähän...
Sub Tarkista()
Dim vika As Long
Dim solu As Range
vika = Range("B65536").End(xlUp).Row
For Each solu In Range("B1:B" & vika)
solu.Offset(0, 1) = DateSerial(Year(Date), Month(solu), Day(solu)) ' c-solu
solu.Offset(0, 2) = DateSerial(Year(Date), Month(solu) - 4, Day(solu)) ' d-solu
Select Case True ' vertailu
Case solu.Offset(0, 1) > solu.Offset(0, 3) 'c>e
solu.Offset(0, 5) = "Myöhässä"
Case solu.Offset(0, 2) < solu.Offset(0, 3) 'd
no loppuosa sitten...
solu.Offset(0, 5) = "Tulossa"
Case Else
MsgBox "mitähän tässä tapauksessa?"
End Select
Next
End Sub
vois ylläpiito laittaa kooditagit näihin ohjelmointiosioihin...
Huomenta eli päivää sinne. Kiitos kokeilen jännittyneenä.