Ehdollinen laskenta

\\kyselee apuja

Käytössä xp pro excel 2003.
Yritän tehdä makroa joka laskee solun arvon mukaan kaavalla.
Negatiivisellä arvolla G$7-ko.solun arvo-I$1.
Positiivisellä arvolla G$7 ko.solun arvo I$1.
Nolla-arvolla G$7.
Alla kokeilun tulos (eipä toimi..):

Sub koe()
Dim Lähdealue2 As Range
Dim vika2 As Integer


vika2 = Range("D65536").End(xlUp).Row
Set Lähdealue2 = Range("D5:D" & vika2)
Range("K5").Select

For i = 1 To Lähdealue2.Count
ActiveCell = Lähdealue2(i)

If ActiveCell.Value = "" Then
ActiveCell.FormulaR1C1 = "=R[2]C[-4] RC[-7]"
If ActiveCell.Value > "0" Then
ActiveCell.FormulaR1C1 = "=R[2]C[-4]"
If ActiveCell.Value < "0" Then
ActiveCell.FormulaR1C1 = "=R7C[-4]-RC[-7]-R1C[-2]"
ActiveCell.Offset(1, 0).Select
End If
End If
End If

Next

Range("A1").Select

End Sub

Oliskohan kenelläkään vinkkiä asiaan?

12

863

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ...

      Ainakin lainausmerkit pois nollan ympäriltä.

      • \\kyselee apuja

        Otin lainausmerkit pois, eipä auttanut.
        Tulos tuli vain K5 soluun (ja sekin väärin).

        Olisiko lisää ehdotuksia, kaikki vinkit otetaan kiitollisuudella vastaan.


      • ...
        \\kyselee apuja kirjoitti:

        Otin lainausmerkit pois, eipä auttanut.
        Tulos tuli vain K5 soluun (ja sekin väärin).

        Olisiko lisää ehdotuksia, kaikki vinkit otetaan kiitollisuudella vastaan.

        Pari elseä lisää: Else If ActiveCell
        Toinen ongelma on, että kaava sijoitetaan samaan soluun, jossa on luku ennestään.


      • \\kyselee apuja
        ... kirjoitti:

        Pari elseä lisää: Else If ActiveCell
        Toinen ongelma on, että kaava sijoitetaan samaan soluun, jossa on luku ennestään.

        Lähtötiedot ovat solusta D5 alaspäin, tulokset laskennasta haluaisin solusta K5 alaspäin. Ennen laskentaa solu ompi tyhjä.


      • ...
        \\kyselee apuja kirjoitti:

        Lähtötiedot ovat solusta D5 alaspäin, tulokset laskennasta haluaisin solusta K5 alaspäin. Ennen laskentaa solu ompi tyhjä.

        For Each solu In Lähdealue2
        arvo = solu.Value

        If arvo = 0 Then
        ActiveCell.FormulaR1C1 = "=R[2]C[-4] RC[-7]"
        Else If arvo > 0 Then
        ActiveCell.FormulaR1C1 = "=R[2]C[-4]"
        Else If arvo < 0 Then
        ActiveCell.FormulaR1C1 = "=R7C[-4]-RC[-7]-R1C[-2]"
        End If
        End If
        End If
        ActiveCell.Offset(1, 0).Select
        Next
        ?


      • \\kyselee apuja
        ... kirjoitti:

        For Each solu In Lähdealue2
        arvo = solu.Value

        If arvo = 0 Then
        ActiveCell.FormulaR1C1 = "=R[2]C[-4] RC[-7]"
        Else If arvo > 0 Then
        ActiveCell.FormulaR1C1 = "=R[2]C[-4]"
        Else If arvo < 0 Then
        ActiveCell.FormulaR1C1 = "=R7C[-4]-RC[-7]-R1C[-2]"
        End If
        End If
        End If
        ActiveCell.Offset(1, 0).Select
        Next
        ?

        tulipa compile error for without next.

        hmm..ei tämä ollutkaaan helppoa...mitähän seuraavaksi....netistä yrittänyt apua löytää, ilman mainittavaa menestystä..


      • \\kyselee apuja kirjoitti:

        tulipa compile error for without next.

        hmm..ei tämä ollutkaaan helppoa...mitähän seuraavaksi....netistä yrittänyt apua löytää, ilman mainittavaa menestystä..

        kyllä se siitä treenaamalla...

        Sub koe()
        Dim Lähdealue2 As Range
        Dim vika2 As Integer

        vika2 = Range("D65536").End(xlUp).Row
        Set Lähdealue2 = Range("D5:D" & vika2)
        For Each solu In Lähdealue2
        Select Case solu
        Case Is > 0
        solu.Offset(0, 7) = Val(Range("G7")) Val(solu) Val(Range("I1"))
        Case Is < 0
        solu.Offset(0, 7) = Val(Range("G7")) - Val(solu) - Val(Range("I1"))
        Case 0
        solu.Offset(0, 7) = Val(Range("G7"))
        End Select
        Next
        End Sub


      • \\kyselee apuja
        kunde kirjoitti:

        kyllä se siitä treenaamalla...

        Sub koe()
        Dim Lähdealue2 As Range
        Dim vika2 As Integer

        vika2 = Range("D65536").End(xlUp).Row
        Set Lähdealue2 = Range("D5:D" & vika2)
        For Each solu In Lähdealue2
        Select Case solu
        Case Is > 0
        solu.Offset(0, 7) = Val(Range("G7")) Val(solu) Val(Range("I1"))
        Case Is < 0
        solu.Offset(0, 7) = Val(Range("G7")) - Val(solu) - Val(Range("I1"))
        Case 0
        solu.Offset(0, 7) = Val(Range("G7"))
        End Select
        Next
        End Sub

        Kokeilenpa huomenna, kun saan widoosakoneen taas käsiini.

        Kiitän makrosta jo etukäteen.

        Kunde, muistaakseni avaat omat excel-sivut jossain vaiheessa?


      • \\kyselee apuja kirjoitti:

        Kokeilenpa huomenna, kun saan widoosakoneen taas käsiini.

        Kiitän makrosta jo etukäteen.

        Kunde, muistaakseni avaat omat excel-sivut jossain vaiheessa?

        joo kyllä Kunden portaali aukeaa virallisestikin kevään aikana. Varmuuskopiot serveriltä vaan menivät "vituiksi" ja joudun manuaalisesti tekeen juttuja uusiksi. Portaaliin tulee aluksi osiot CAD/CAM/CNC, EXCEL(myöhemmin muut officejutskat) ja MATKAILU lähinnä nyt THAIMAA (Khorat ja Pattaya). Varsinkin CAD/CAM/CNC osaajat voisivat lähettää mulle mailia [email protected]

        KEEP EXCELING
        Kunde


      • \\kyselee apuja
        kunde kirjoitti:

        joo kyllä Kunden portaali aukeaa virallisestikin kevään aikana. Varmuuskopiot serveriltä vaan menivät "vituiksi" ja joudun manuaalisesti tekeen juttuja uusiksi. Portaaliin tulee aluksi osiot CAD/CAM/CNC, EXCEL(myöhemmin muut officejutskat) ja MATKAILU lähinnä nyt THAIMAA (Khorat ja Pattaya). Varsinkin CAD/CAM/CNC osaajat voisivat lähettää mulle mailia [email protected]

        KEEP EXCELING
        Kunde

        Kerro sitten tarkemmin kun saat portaalin auki, kiitos.

        Makrosta vielä:
        D6 0.03 G7 236.02 I1 9.44 tulokseksi antaa (K5) 236.00

        Olisiko mahdollista saa desimaaleja mukaan?


      • \\kyselee apuja kirjoitti:

        Kerro sitten tarkemmin kun saat portaalin auki, kiitos.

        Makrosta vielä:
        D6 0.03 G7 236.02 I1 9.44 tulokseksi antaa (K5) 236.00

        Olisiko mahdollista saa desimaaleja mukaan?

        nyt desimaalitkin mukana ;-)

        Sub koe()
        Dim Lähdealue2 As Range
        Dim vika2 As Integer

        vika2 = Range("D65536").End(xlUp).Row
        Set Lähdealue2 = Range("D5:D" & vika2)
        For Each solu In Lähdealue2
        Select Case solu
        Case Is > 0
        solu.Offset(0, 7) = CDbl(Range("G7")) CDbl(solu) CDbl(Range("I1"))
        Case Is < 0
        solu.Offset(0, 7) = CDbl(Range("G7")) - CDbl(solu) - CDbl(Range("I1"))
        Case 0
        solu.Offset(0, 7) = CDbl(Range("G7"))
        End Select
        Next
        End Sub


      • \\kyselee apuja
        kunde kirjoitti:

        nyt desimaalitkin mukana ;-)

        Sub koe()
        Dim Lähdealue2 As Range
        Dim vika2 As Integer

        vika2 = Range("D65536").End(xlUp).Row
        Set Lähdealue2 = Range("D5:D" & vika2)
        For Each solu In Lähdealue2
        Select Case solu
        Case Is > 0
        solu.Offset(0, 7) = CDbl(Range("G7")) CDbl(solu) CDbl(Range("I1"))
        Case Is < 0
        solu.Offset(0, 7) = CDbl(Range("G7")) - CDbl(solu) - CDbl(Range("I1"))
        Case 0
        solu.Offset(0, 7) = CDbl(Range("G7"))
        End Select
        Next
        End Sub

        Toimii hienosti, eikä ole mitään anteeksipyydettävää vapaaehtoisesta avusta.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Eutanasia?

      Kertokaas omia mielipiteitä eutanasiaan liittyen. Onko mielestäsi oikein vai väärin ja miksi?
      Arvot ja etiikka
      7
      12406
    2. Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?

      Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä
      Arvot ja etiikka
      4
      11173
    3. Riikka Purran kaudella nousi bensan hinta yli 2 euron

      Muistatteko kuinka edellisen vasemmistohallituksen aikana, ns. Marinin aikakaudella, bensiiniä sai 1,3 euron litrahinnal
      Maailman menoa
      175
      5095
    4. Veli Sofia teki urosmehiläisen työn

      Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa
      Maailman menoa
      28
      3709
    5. Mitäs nyt sijoittajat?

      Pörssit laskevat maailmalla Iranin sodan takia ja muutenkin ovat olleet Trumpin vallan alla epävarmat. Ainoa, mikä on no
      Maailman menoa
      196
      3544
    6. Hjallis Harkimon, 72, Jasmine-rakas, 37, paljastaa suhteen alusta: "Vähän..."

      Liikemies, kansanedustaja Hjallis Harkimo ja tuottaja-juontaja Jasmine Pajari ovat pariskunta. He asuvat yhdessä Sipooss
      Suomalaiset julkkikset
      47
      3094
    7. Unisex-vessat

      Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu
      Tunteet
      108
      2829
    8. Jäit kiinni siitä

      että katselet minua. Käänsin pääni, minäkin etsin sinua, ja meidän katseemme kohtasivat. Eikä se haittaa - molemmat ky
      Ikävä
      13
      2358
    9. Sosiaalidemokratia romahtanut kautta maailman

      nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie
      Maailman menoa
      39
      2138
    10. Jutta Larm, 52, haluaa kumota tämän piintyneen ikämyytin

      Oletko samaa mieltä? Jutta Larm on 52-vuotias ja tehnyt pitkän uran yrittäjänä. Hän haluaa kumota tämän piintyneen ikämy
      50 plus
      19
      1955
    Aihe