kyssäri

kavi

Minulla on tiedon syöttö taulukko josta tiedot kopioituu toiseen taulukkoon tämä kaava solussa M33
[=JOS(VERTAA(D9;"X");L19*1000/JOS(VERTAA(A13;"X");AT!B16;AT!B17)/86400 M32;L19*1000/JOS(VERTAA(A13;"X");AT!C16;AT!C17)/86400 M32)], mutta siinä on mahdollista syöttää myös käsin lopetus aika ja samalla häipyy kaavani.
Miten saan makrossa tai muuten syötettyä tämän kaavan takaisin samaan soluun, jotta seuraavalla kerralla se laskisi lopetus ajan oikein?
Makrossa tyhjennetään soluja joiden tiedot täytyy syöttää uudelleen, siihen voisi yhdistää tämän kaavan lisäyksen tai niin että se hakisi kaavan jostakin???

12

766

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • kavi

      Ratkaisin pulman niin että laitoin kaavan toiseen kohtaan, josta sitten kopioin sen makrossa tähän soluun M33.
      Olisin halunnut oppia myös miten makrossa syötetään soluun kaava.

      • niin nauhoita makro ja katso mitä se on saanut aikaan...(98% paskaa...)
        mutta asiaan...
        kirjoita koodiin esim. riippuen kieliversiosta
        Range("F16").Formula = "=SUM(A1:A10)" tai
        Range("F16").Formula = "=SUMMA(A1:A10)"

        voit katsoa myös mitä muita vaihtoehtoja löytyy(auora tai suhteellinen viittaus) kun kirjoittelet VBAeditorissa
        Range("F16"). ja katselet mitä vaihtoehtoja löytyy
        Keep Excelling


      • kavi
        kunde kirjoitti:

        niin nauhoita makro ja katso mitä se on saanut aikaan...(98% paskaa...)
        mutta asiaan...
        kirjoita koodiin esim. riippuen kieliversiosta
        Range("F16").Formula = "=SUM(A1:A10)" tai
        Range("F16").Formula = "=SUMMA(A1:A10)"

        voit katsoa myös mitä muita vaihtoehtoja löytyy(auora tai suhteellinen viittaus) kun kirjoittelet VBAeditorissa
        Range("F16"). ja katselet mitä vaihtoehtoja löytyy
        Keep Excelling

        Kokeilinkin sitä nauhoittamista, mutta siinä VBA antaa herjaa "=JOS(VERTAA(D9;"X")jne..." tuosta X.
        Missä vika? minussa tietenkin:)


      • kavi kirjoitti:

        Kokeilinkin sitä nauhoittamista, mutta siinä VBA antaa herjaa "=JOS(VERTAA(D9;"X")jne..." tuosta X.
        Missä vika? minussa tietenkin:)

        mutta kokeiles ensiksi esim.
        Range("A1").FormulaLocal= "..."


      • kavi
        kunde kirjoitti:

        mutta kokeiles ensiksi esim.
        Range("A1").FormulaLocal= "..."

        Tässä koodi siinä on kommenttina myös se rivi missä on vika.

        Sub kaavan_syotto()

        ActiveSheet.Unprotect
        Range("L32").Formula = "L31"
        'Selection.Copy
        Range("L33").Formula = "l32"
        'ActiveSheet.Paste Link:=True
        'Range("M33").FormulaLocal ="=JOS(VERTAA($D$9;"X");$L$19*1000/JOS(VERTAA($A$13;"X");AT!$B$16;AT!$B$17)/86400 $M$32;$L$19*1000/JOS(VERTAA($A$13;"X");AT!$C$16;AT!$C$17)/86400 $M$32)"
        Sheets("AT").Select
        ActiveSheet.Unprotect
        Range("I1").Select
        Selection.Copy
        Sheets("Taulu").Select
        Range("M33").Select
        Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
        Application.CutCopyMode = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("A13").Select
        Sheets("AT").Select
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("C12").Select
        Sheets("Taulu").Select
        Range("A13").Select

        End Sub


      • kokeilisit
        kavi kirjoitti:

        Tässä koodi siinä on kommenttina myös se rivi missä on vika.

        Sub kaavan_syotto()

        ActiveSheet.Unprotect
        Range("L32").Formula = "L31"
        'Selection.Copy
        Range("L33").Formula = "l32"
        'ActiveSheet.Paste Link:=True
        'Range("M33").FormulaLocal ="=JOS(VERTAA($D$9;"X");$L$19*1000/JOS(VERTAA($A$13;"X");AT!$B$16;AT!$B$17)/86400 $M$32;$L$19*1000/JOS(VERTAA($A$13;"X");AT!$C$16;AT!$C$17)/86400 $M$32)"
        Sheets("AT").Select
        ActiveSheet.Unprotect
        Range("I1").Select
        Selection.Copy
        Sheets("Taulu").Select
        Range("M33").Select
        Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
        Application.CutCopyMode = False
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("A13").Select
        Sheets("AT").Select
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
        Range("C12").Select
        Sheets("Taulu").Select
        Range("A13").Select

        End Sub

        tuossa kaavassa puolipisteen paikalla pilkkua...


      • kavi
        kokeilisit kirjoitti:

        tuossa kaavassa puolipisteen paikalla pilkkua...

        Auta koska muussa koodissa toimii puolipiste.


      • kavi kirjoitti:

        Auta koska muussa koodissa toimii puolipiste.

        =JOS(VERTAA($D$9;"X");$L$19*1000/JOS(VERTAA($A$13;"X")...

        ainakin jos D9=x ja A13X niin silloinhan tulee virhe kun jaetaan nollalla!

        en kyllä ymmärrä kaavaasi
        $L$19*1000/JOS(VERTAA($A$13;"X")
        jaetaan joko 1 tai 0 eli ilmeisesti sun jossittelu ei mene oikein...
        VBA:n avulla voit tehdä monesti kaavan paljon helpomminkin VBA:n omilla jutuilla
        joten tarkistappas nyt ekaksi jossittelusi


      • kavi
        kunde kirjoitti:

        =JOS(VERTAA($D$9;"X");$L$19*1000/JOS(VERTAA($A$13;"X")...

        ainakin jos D9=x ja A13X niin silloinhan tulee virhe kun jaetaan nollalla!

        en kyllä ymmärrä kaavaasi
        $L$19*1000/JOS(VERTAA($A$13;"X")
        jaetaan joko 1 tai 0 eli ilmeisesti sun jossittelu ei mene oikein...
        VBA:n avulla voit tehdä monesti kaavan paljon helpomminkin VBA:n omilla jutuilla
        joten tarkistappas nyt ekaksi jossittelusi

        Selostan aluksi kaavani, sillä en ehdi juuri nyt tarkistaa sitä ja se on toiminut näin jo pitkään, toivottavasti siinä ei ole vikaa.
        Siinä katsotaan onko D9 X ja ellei ole niin oletetaan X olevan I9, mitä ei tarkisteta, sitten katsotaan onko A13 X ja ellei ole oletetaan X olevan I13, mitä ei tarkisteta.
        Jos A13 ja D9 on X, niin haetaan pumpun teho AT taulusta ja lasketaan pumppaus aika, joka lisätään pumppauksen aloitus aikaan M32.


      • kavi
        kunde kirjoitti:

        =JOS(VERTAA($D$9;"X");$L$19*1000/JOS(VERTAA($A$13;"X")...

        ainakin jos D9=x ja A13X niin silloinhan tulee virhe kun jaetaan nollalla!

        en kyllä ymmärrä kaavaasi
        $L$19*1000/JOS(VERTAA($A$13;"X")
        jaetaan joko 1 tai 0 eli ilmeisesti sun jossittelu ei mene oikein...
        VBA:n avulla voit tehdä monesti kaavan paljon helpomminkin VBA:n omilla jutuilla
        joten tarkistappas nyt ekaksi jossittelusi

        Nyt ehdin katsomaan sitä kaavaani ja kokeilin jotain yksinkertaisempaa. range("B1").formulaLogal="=jos(vertaa(A1;"X");A2/2;100)
        Ja tässä kaavassakin VBA herjasi kohtaa jossa on "X".


      • Nimimerkki
        kavi kirjoitti:

        Nyt ehdin katsomaan sitä kaavaani ja kokeilin jotain yksinkertaisempaa. range("B1").formulaLogal="=jos(vertaa(A1;"X");A2/2;100)
        Ja tässä kaavassakin VBA herjasi kohtaa jossa on "X".

        Asiaa sen tarkemmin tarkistamatta, mutta eikös tuossa X:n ympärillä pitäisi olla tupla heittomerkit, eli johonkin tähän tapaan:

        range("B1").formulaLogal="=jos(vertaa(A1;""X"");A2/2;100)"

        ilman tuplaa tuo ekan heittomerkin jälkeinen alue loppuu tokaan heittomerkkiin, eli juuri ennen X merkki, ja sitähän et varmaan tarkoita. tupla heittomerkki tarkoittaa jotain sellaista etä ekan heittomerkin jälkeinen alue jatkuu edelleen, ja näin loppuu vasta viimeiseen heittomerkkiin asti.

        huono perustelu, mutta varmasti joku voi perustella asian selvemmin, jos tuossa on jotain perää.


      • kavi
        Nimimerkki kirjoitti:

        Asiaa sen tarkemmin tarkistamatta, mutta eikös tuossa X:n ympärillä pitäisi olla tupla heittomerkit, eli johonkin tähän tapaan:

        range("B1").formulaLogal="=jos(vertaa(A1;""X"");A2/2;100)"

        ilman tuplaa tuo ekan heittomerkin jälkeinen alue loppuu tokaan heittomerkkiin, eli juuri ennen X merkki, ja sitähän et varmaan tarkoita. tupla heittomerkki tarkoittaa jotain sellaista etä ekan heittomerkin jälkeinen alue jatkuu edelleen, ja näin loppuu vasta viimeiseen heittomerkkiin asti.

        huono perustelu, mutta varmasti joku voi perustella asian selvemmin, jos tuossa on jotain perää.

        No niin nyt kaava kopioituu makrosta soluun.


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

    Luetuimmat keskustelut

    1. Kotihoito suomussalmella

      Mitämieltä ootte suomussalmen kotihoidosta?
      Suomussalmi
      40
      5725
    2. Maataloustuet pois

      Jokainen maksakoon harrastuksensa itse. Eihän golfin peluutakaan maksa yhteiskunta.
      Maailman menoa
      233
      4841
    3. Australia, Britannia ja Kanada tunnustivat Palestiinan

      Aikooko Petteri Lapanen pysytellä persujen ja uskovaisten panttivankina ja jättää Suomen historian väärälle puolelle?
      Maailman menoa
      73
      4730
    4. Joko alkaa menemään tajuntaan tämä yliluonnollinen yhteys?

      Varmaan pikkuhiljaa. Muista olla kiltisti ❤️
      Ikävä
      47
      4620
    5. Kohtalokas laukaus

      IL 20.9.25 "Ihminen kuoli baarin edustalla Kajaanissa Poliisi ei epäile tapauksessa rikosta." "Kajaanin keskustassa on k
      Kajaani
      26
      4412
    6. Työeläkkeen saamiseksi olisi tehtävä töitä

      Meillä on Suomessa iso joukko ihmisiä, joilla olisi vielä työkykyä jäljellä, mutta joilta puuttuu arjesta mielekäs tekem
      Maailman menoa
      160
      3835
    7. Mitä juuri sinulle kuuluu?

      Tänään? Rehellisesti.
      Ikävä
      105
      3269
    8. Joulukinkku NYT

      Sian kankuista tulee vielä pula. Nyt on oikea aika hankkia joulukinkku.
      Maailman menoa
      23
      3085
    9. Muistattekos kun Sannan aikana suomalaisten varallisuuteen lisättiin viidennes

      Köyhät voittivat eniten mutta rikkaimmat kuitenkin köyhtyi!
      Maailman menoa
      27
      3082
    10. Sählyhallitus 2023-2025, mailat heiluvat, mutta pallo karkaa kulmaan

      Salibandy on organisoitua. Sähly on taas sitä, kun joku tuo mailat ja palloja on ehkä yksi. Sitä tämä hallituskin on: pe
      Maailman menoa
      4
      2241
    Aihe