Luvun pienentäminen solussa

Anonyymi

Moi,
Ytimekäs otsikkoni ei vielä paljasta mitä lopulta haluan, mutta tässä tarkemmin esimerkin valossa.

B -sarakkeessa on 36 nimeä riveillä 1-36.
A-sarakkeessa on jokaisen nimen kohdalla jokin arvo, vaikka väliltä 0-100.
Jokaisella nimellä on tarkastelualue rivin solut C-Z.
Tässä lähtöasetelma.

Ajatuksena olisi ainoastaan pienentää A-sarakkeen lukua hiirtä klikkaamalla soluissa välillä C-Z siten, että soluun jäisi X-kirjain, eikä X-kirjaimen poistaminen (joskus) -palauttaisi arvoa enää isommaksi.

Soluihin C-Z täytyy voida kirjoittaa haluttaessa muitakin kirjaimia, mutta VAIN X-kirjain pienentäisi A-sarakkeen lukua yhdellä.

Tarkennuksena siis, että jokainen rivin X-kirjain pienentää A-sarakkeen solun lukua.

Lisäksi A-sarakkeen lukua pitää voida muuttaa isommaksi tai pienemmäksi niin haluttaessa, eli lukua lähdetään aina pienentämään sen hetkisestä arvosta mikä siinä sillä hetkellä on, paisti jos arvo on 0 (nolla).

Luonnistuisiko tällainen kaavarivillä tai VB:llä?

12

192

    Vastaukset 12

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      VB:llä hyvin luultavasti onnistuu. En ole täysin varma, ettei sille ole jotain estettä, mutta ohjelmointikielihän se on, joten äkkiseltään sanoisin, että mikä ettei.

      Kaavarivillä tuskin ihan tuollaisenaan onnistuu. Jotain samantapaista kyllä, mutta ainakin se, että solun arvo muuttuu sekä syöttämällä että kaavan avulla, on aika tekemätön paikka. Kun syötät A-sarakkeeseen uuden arvon, se ei vain muuta solun arvoa, vaan korvaa solun kaavan.

      • Anonyymi

        Tuota itsekin arvelin, ettei A-sarakkeen arvoa voi ainakaan suoraan lähteä muokkaamaan, ainakaan jos se sisältää kaavan. En tiedä onnistuisiko tämä lainkaan kkaavalla.
        Mutta nyt näyttääkin Kunde alempana ratkaisseen asian VB:llä.
        Kiitos silti pähkäilystäsi!


    • ko taulukon moduuliin...
      nyt tuplaklikkaamalla solua alueella lisää soluun X ja pienentää vastaavan solun rivin A sarakkeen arvoa -1 ja jos nolla ei tee mitään.

      Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
      If Not Intersect(Range("C1:Z36"), Target) Is Nothing Then
      Target = "X"
      If Range("A" & Target.Row) = 0 Then
      Else
      Range("A" & Target.Row) = Range("A" & Target.Row) - 1
      Target.Offset(0, 1).Select
      End If
      End If
      End Sub

      • sori tämäkoodi piti postata...

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Range("C1:Z36"), Target) Is Nothing Then
        If Target = "X" Then
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        Target = "X"
        If Range("A" & Target.Row) <= 0 Then
        Range("A" & Target.Row) = 0
        Else
        Range("A" & Target.Row) = Range("A" & Target.Row) - 1
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        End If
        End If
        End If
        End Sub

        Keep EXCELing
        @Kunde


      • Anonyymi
        kunde kirjoitti:

        sori tämäkoodi piti postata...

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Range("C1:Z36"), Target) Is Nothing Then
        If Target = "X" Then
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        Target = "X"
        If Range("A" & Target.Row) <= 0 Then
        Range("A" & Target.Row) = 0
        Else
        Range("A" & Target.Row) = Range("A" & Target.Row) - 1
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        End If
        End If
        End If
        End Sub

        Keep EXCELing
        @Kunde

        Kiitos Kunde, tämä näyttäisi ns. soivalta peliltä.
        Esitin asiani esimerkin valossa, kuten kirjoitinkin. Nyt kun käsissäni on toimiva koodi, yritän sovittaa sen jo käytössä olevaan versiooni.
        Mahdollisissa ongelmissa käännyn mielelläni puoleesi.
        Virittelyni siirtyy varmaan kyllä ensi viikolle, mutta palataan tarvittaessa asiaan.
        Kiitos vielä kovasti nopeasta reagoinnistasi! :)


      • Anonyymi
        Anonyymi kirjoitti:

        Kiitos Kunde, tämä näyttäisi ns. soivalta peliltä.
        Esitin asiani esimerkin valossa, kuten kirjoitinkin. Nyt kun käsissäni on toimiva koodi, yritän sovittaa sen jo käytössä olevaan versiooni.
        Mahdollisissa ongelmissa käännyn mielelläni puoleesi.
        Virittelyni siirtyy varmaan kyllä ensi viikolle, mutta palataan tarvittaessa asiaan.
        Kiitos vielä kovasti nopeasta reagoinnistasi! :)

        Moi Kunde. Päätinkin kokeilla koodiasi heti ja mieleeni tuli seuraavaa.
        Tässä nykyisessä versiossahan tuo X-kirjain pienentää A-sarakkeen solun arvoa yhdellä.
        Olisiko iso muutos jos X-kirjaimen poistamisen jälkeen se palauttaisikin arvon entiselleen?
        Ajatus muutokselle lähti siitä, että nuo X-kirjaimet periaatteessa jäävät yleensä aina paikalleen, mutta joskus tulee tilanne, että se täytyykin poistaa ja arvo saisi palautua sillä yhdellä silloin. Soluun muiden kirjainten kirjoittaminen saisi olla silti voimassa edelleen, vaikka X-kirjain poistettaisiinkin.

        Toinen muutos mikä tuli mieleen, voisiko koodiasi muuttaa siten, että se vaikuttaisikin vain joka toisella rivillä, eli nyt se vaikuttaa joka rivillä 1-36, kun se voisikin selvyyden vuoksi vaikuttaa vain joka toisella rivillä, eli 1, 3, 5, 7....... 35.

        Tämä muutos olisi tervetullut. :))


      • Anonyymi kirjoitti:

        Moi Kunde. Päätinkin kokeilla koodiasi heti ja mieleeni tuli seuraavaa.
        Tässä nykyisessä versiossahan tuo X-kirjain pienentää A-sarakkeen solun arvoa yhdellä.
        Olisiko iso muutos jos X-kirjaimen poistamisen jälkeen se palauttaisikin arvon entiselleen?
        Ajatus muutokselle lähti siitä, että nuo X-kirjaimet periaatteessa jäävät yleensä aina paikalleen, mutta joskus tulee tilanne, että se täytyykin poistaa ja arvo saisi palautua sillä yhdellä silloin. Soluun muiden kirjainten kirjoittaminen saisi olla silti voimassa edelleen, vaikka X-kirjain poistettaisiinkin.

        Toinen muutos mikä tuli mieleen, voisiko koodiasi muuttaa siten, että se vaikuttaisikin vain joka toisella rivillä, eli nyt se vaikuttaa joka rivillä 1-36, kun se voisikin selvyyden vuoksi vaikuttaa vain joka toisella rivillä, eli 1, 3, 5, 7....... 35.

        Tämä muutos olisi tervetullut. :))

        Lisäsin koodiin vielä semmoisen, että jos A -sarakkeen luku on jo 0, niin ei voi lisätä X kirjainta- jos ei hyvälisäys, niin poistetaan sitten...

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Range("C1:Z36"), Target) Is Nothing Then
        If Target.Row Mod 2 = 1 Then
        If Target = "X" Then
        Target = ""
        Range("A" & Target.Row) = Range("A" & Target.Row) 1
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        If Range("A" & Target.Row) <= 0 Then
        Range("A" & Target.Row) = 0
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        Range("A" & Target.Row) = Range("A" & Target.Row) - 1
        Target = "X"
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        End If
        End If
        End If
        End If
        End Sub

        Keep EXCELing
        @Kunde


      • Anonyymi
        kunde kirjoitti:

        Lisäsin koodiin vielä semmoisen, että jos A -sarakkeen luku on jo 0, niin ei voi lisätä X kirjainta- jos ei hyvälisäys, niin poistetaan sitten...

        Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Range("C1:Z36"), Target) Is Nothing Then
        If Target.Row Mod 2 = 1 Then
        If Target = "X" Then
        Target = ""
        Range("A" & Target.Row) = Range("A" & Target.Row) 1
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        If Range("A" & Target.Row) <= 0 Then
        Range("A" & Target.Row) = 0
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        Else
        Range("A" & Target.Row) = Range("A" & Target.Row) - 1
        Target = "X"
        If Target.Column = 25 Then
        Target.Offset(1, 0).Select
        Else
        Target.Offset(0, 1).Select
        End If
        End If
        End If
        End If
        End If
        End Sub

        Keep EXCELing
        @Kunde

        Kunde, laitoinkin aiheesta spostia sulle!


    • Anonyymi

      Näinhän se parempi toimisto-ohjelma asentuu vaikeasti komentamalla ;-).
      (täällä kerran winhiihuli vai kuka se oli, niin valitti sudotuksesta, joten...:

      apt update

      sudo !!

      apt upgrade

      sudo !!

      apt search libreoffice

      apt install libreoffice

      sudo !!

      xxx

      $ e
      Keskeyt ä.............
      .

      • Anonyymi

        Mitäs tehdään, kun heti tuli:

        bash: apt: komentoa ei löydy

        -


      • Anonyymi

        Niin... Miksipä ihmeessä kukaan haluaisi käyttää hyvin optimoitua ammattilaisten tekemää kaupallista ohjelmistoa, kun voi yhtä hyvin käyttää huonosti optimoitua harrastelijoiden vapaaehtoisprojektina tekemää ilmaiskopiota samasta tuotteesta.


    • Anonyymi

      Moi,
      Aiheen aloittajana ilmoitan, että sain ratkaisun esittämääni ongelmaan! Kiitos kaikille ratkaisuja esittäneille ja erityisesti Kundelle, joka väänsi homman toimimaan VB-koodilla -joka saikin matkan varrella lisää uusia ulottuvuuksia.

      -aiheen aloittaja

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

    Luetuimmat keskustelut

    1. Riikka Purra on mukana Suomen huutokauppakeisari -sarjassa

      Suomen huutokauppakeisari on tavallisten suomalaisten ohjelma. Sarjan suosiosta kertoo se, että nyt alkaa jo 19. kausi t
      Maailman menoa
      158
      1483
    2. Kuuleppas

      ensimmäiset naissuhteet toimii miehelle eräänlaisena oppikouluna, mutta hän ei välttämättä itse ymmärrä oppineensa mitää
      Ikävä
      255
      1063
    3. Mulla ei ole Suomessa enää mitään

      4 vuotta joutuu asumaan henkisessä vankilassa. Sitten voi muuttaa takaisin ulkomaille.
      Turku
      183
      712
    4. Kuinka nainen jaksat ja voit

      Toivottavasti hyvin.
      Ikävä
      43
      691
    5. Provider miehistä..

      Tietyt miehet puhuvat ilkeästi naisista, jotka haluavat elää miehen tuloilla. Eikö? Mutta miksi tietyt miehet siitä pah
      Ikävä
      201
      649
    6. Sinulle nainen

      En ehkä koskaan osannut sanoa tätä oikein. Minun vaikeuteni luottaa liittyi ennen kaikkea menettämisen pelkoon. Siihen
      Ikävä
      63
      615
    7. Tiedätkö sitä

      Että sinun äänesi on ihanan pehmeä
      Ikävä
      40
      546
    8. Ethän voinut nainen tietää, että rikot rikotun

      Omaa elämää taas mietin aamuyön tunteina. En vieläkään löytänyt muistin sokkeloista ainuttakaan onnen hetkeä. Kaipuu on
      Ikävä
      66
      506
    9. Ethän mies vielä

      luovu meistä? Haluaisin jo sun syliin.
      Ikävä
      30
      474
    10. Haaveilen edelleen

      Sinusta aika ajoin
      Ikävä
      31
      461
    11. Tulisitpa käymään joskus vielä

      Olisi niin kiva nähdä pitkästä aikaa. Oletko vielä joskus tulossa?... Niin monet muutoksen tuulet puhaltavat, olisi lohd
      Ikävä
      23
      459
    12. Lämpimiä katseita aikoinaan vaihdettiin, siihen se sitten jäi

      Sinulla uudet tuulet ja välttelet kohtaamistamme.
      Ikävä
      26
      440
    13. Hei rakkaani.

      Kohtaaminen lähestyy. Miten teemme sen? Kumpi ottaa yhteyttä vai törmäämmekö jossain sattumalta? Tuleva vaimosi
      Ikävä
      25
      435
    14. Sut.

      Tuhotaan. :)
      Tunteet
      37
      432
    15. Yt:t kunnassa päättyi

      Oliko nämä tarpeelliset ja ratkeaako taloushuolet näiden avulla? Lehdessä ilmoitettujen lukujen perusteella lisää on tul
      Lappajärvi
      53
      427
    16. Martsusta tuli leuhka

      Ja ylimielinen. Hän ei nosta persettäkään ilmaseksi . Luulempa et nämä ei tee hyvää hyvinvointivalmennuksille.... Nannal
      Kotimaiset julkkisjuorut
      159
      419
    17. Mä oon kallistumassa

      Rikosilmoitukseen!
      Suhteet
      69
      411
    18. Valtiomies puhuu?

      "Trump väitti jo aiemmin maanantaina Truth Socialissa, että hän itse riittää suojaamaan maailmaa tekoälyn vaaroilta. – 
      Maailman menoa
      77
      394
    19. 19
      394
    20. Poromiehentien remontti ...

      Mikä tilanne? mistä mennään
      Hyrynsalmi
      6
      393
    Aihe