kaavaongelmia

Voiko laskea kaavaa samaan soluun? Eli jos on solu jossa luku 5. Siihen samaan soluun lisätään 3 niin automaattisesti se laskee yhteenlaskun 5 3 =8 kyseiseen soluun.
91401
Äänestä

Muut lukivat myös

Vastaukset 9

Vanhimmat

Jos solussa A1 5
kirjoita vaikka soluun C1 3
aktivoi solu C1 Muokkaa -> kopioi
aktivoi solu A1 Muokkaa -> liitä määräten -> ja täppä kohtaan lisää ja OK.

Äänestä

jos tarkoitit tätä.
jos solussa luku 3 ja samaan soluun kirjoitetaan uudelleen luku 5 niin summaa luvut ja tulos on 8.
Todellakin vuoden vaikein kyssäri... en keksi miten saisi summattua luvun joka on sama kuin vanha arvo solussa järkevällä tavalla.
Poistamalla kommentit koodista lisää kyllä saman arvon, mutta kysyy joka kerta jos solun arvo ei muutu "lisätäänkö?"- jos vastaus on kyllä niin lisää muuten ei
palataan asiaan myöhemmin


Public vika As String
Public summa As Double

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Vastaus As Integer
On Error Resume Next
If Range(vika) summa Then
Range(vika) = Range(vika) summa
Else
' Vastaus = MsgBox("Lisätäänkö?", vbInformation vbYesNo)
' If Vastaus = vbYes Then
' Range(vika) = Range(vika) summa
' End If
End If
If Range(vika) = 0 Then Range(vika) = ""
vika = Target.Address
summa = Target
End Sub

Äänestä
  • En tiedä kelpaako sinulle tällainen vippaskonsti?
    Opinpahan itse ainakin jotain uuttaa tätä pähkäillessäni! Kun en osannut muuten ratkaista käytin apuruutua (IV65536). Summa kertyy soluun A5, mihin myös uudet luvut syötetään. Virhetoiminnot puuttuvat.
    Kunde varmaan stilisoi ja kommentoi mitä voisi tehdä fiksummin.


    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$5" Then
    Application.EnableEvents = False

    Dim valisumma As Long
    Dim uusisumma As Long

    If Range("IV65536").Value = 0 Then
    Range("IV65536").Value = Target.Value
    Application.EnableEvents = True
    Exit Sub
    End If

    valisumma = Range("IV65536").Value
    uusisumma = valisumma Target.Value
    Range("IV65536").Value = uusisumma
    Target.Value = uusisumma

    Application.EnableEvents = True
    End If

    End Sub

    Äänestä

  • T-N kirjoitti:

    En tiedä kelpaako sinulle tällainen vippaskonsti?
    Opinpahan itse ainakin jotain uuttaa tätä pähkäillessäni! Kun en osannut muuten ratkaista käytin apuruutua (IV65536). Summa kertyy soluun A5, mihin myös uudet luvut syötetään. Virhetoiminnot puuttuvat.
    Kunde varmaan stilisoi ja kommentoi mitä voisi tehdä fiksummin.


    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$5" Then
    Application.EnableEvents = False

    Dim valisumma As Long
    Dim uusisumma As Long

    If Range("IV65536").Value = 0 Then
    Range("IV65536").Value = Target.Value
    Application.EnableEvents = True
    Exit Sub
    End If

    valisumma = Range("IV65536").Value
    uusisumma = valisumma Target.Value
    Range("IV65536").Value = uusisumma
    Target.Value = uusisumma

    Application.EnableEvents = True
    End If

    End Sub

    Siivosin tuon turhan ifin pois:

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$5" Then
    Application.EnableEvents = False

    Dim valisumma As Long
    Dim uusisumma As Long

    valisumma = Range("IV65536").Value
    uusisumma = valisumma Target.Value
    Range("IV65536").Value = uusisumma
    Target.Value = uusisumma

    Application.EnableEvents = True
    End If

    End Sub

    Äänestä

  • T-N kirjoitti:

    Siivosin tuon turhan ifin pois:

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$5" Then
    Application.EnableEvents = False

    Dim valisumma As Long
    Dim uusisumma As Long

    valisumma = Range("IV65536").Value
    uusisumma = valisumma Target.Value
    Range("IV65536").Value = uusisumma
    Target.Value = uusisumma

    Application.EnableEvents = True
    End If

    End Sub

    ei toimi mulla...

    Äänestä

  • T-N kirjoitti:

    Siivosin tuon turhan ifin pois:

    Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$A$5" Then
    Application.EnableEvents = False

    Dim valisumma As Long
    Dim uusisumma As Long

    valisumma = Range("IV65536").Value
    uusisumma = valisumma Target.Value
    Range("IV65536").Value = uusisumma
    Target.Value = uusisumma

    Application.EnableEvents = True
    End If

    End Sub

    nyt ollaan saman taulun sisällä...

    Äänestä

  • kunde kirjoitti:

    nyt ollaan saman taulun sisällä...

    Hassua, mulla kyllä toimii. Joskus työn alla ei pelittänyt, kun oli jäänyt tuo: "Application.EnableEvents " asentoon False. Toimii taulukohtaisesti siis,

    Äänestä

  • T-N kirjoitti:

    Hassua, mulla kyllä toimii. Joskus työn alla ei pelittänyt, kun oli jäänyt tuo: "Application.EnableEvents " asentoon False. Toimii taulukohtaisesti siis,

    toimii hienosti yhdelle solulle.
    Itse ajattelin koodissani kyllä toimintaa kaikille mahdollisille soluille taulukossa, mutta en keksi miten summata kun sama luku syötetään uudelleen

    Äänestä

  • kunde kirjoitti:

    toimii hienosti yhdelle solulle.
    Itse ajattelin koodissani kyllä toimintaa kaikille mahdollisille soluille taulukossa, mutta en keksi miten summata kun sama luku syötetään uudelleen

    monella tapaa asiaa voidaan ajatella. Minun lähtökohtanani oli, että "summaavia soluja" on rajallinen määrä ja kyseisen solun arvon muuttaminen ajaa makron läpi.
    En tiedä kävikö näin????

    Äänestä

Kommentoi aloitusta


Solukko kirjoitti:

Voiko laskea kaavaa samaan soluun? Eli jos on solu jossa luku 5. Siihen samaan soluun lisätään 3 niin automaattisesti se laskee yhteenlaskun 5 3 =8 kyseiseen soluun.

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu