Miten saan tehtyä sellaisen yhden solun, joka lisääntyy, sillä arvolla mikä syötetään toiseen soluun? Siis, kun minulla on kaksi solua, joista ensimmäiseen syötän satunnaisia lukuja (nollasta eteenpäin), niin nämä luvut pitäisi saada siirtymään toiseen soluun laskurin tavoin. Ei siis vähennystä milloinkaan. Esim. Vaihe1: 1.solun arvo 5, 2.solun arvo 5 Vaihe2: 1.solun arvo 10, 2.solun arvo 15 Vaihe3: 1.solun arvo 0, 2.solun arvo 15... jne.
Ensimmäisen solun arvon kun vaihtaa toiseksi, niin tämä uusi arvo täytyisi aina saada lisättyä toisen solun vanhaan arvoon.
Ensimmäisen solun arvon kun vaihtaa toiseksi, niin tämä uusi arvo täytyisi aina saada lisättyä toisen solun vanhaan arvoon.
Vastaukset 16
Vanhimmat
Makrolla onnistuu. Makro suoritetaan kun solu A2 valitaan, elikkä kun kirjoitat soluun A1 ja painat enter valinta siirtyy soluun A2 ja makro suoritetaan.
Taulukon moduuliin.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
[C1] = [C1] [A1]
End If
End Sub
Tuolla on asia viety vähän pidemmälle.
http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000708&posting=22000000019361201
mulle tulee compile error: expected end sub.
Ilmeisesti koodistasi puuttuu End Sub
End Sub löytyy viimeiseltä riviltä.
...mutta tulee siis silti.
Enpä keksi mitään selitystä tuolle errorille.
Minulla kyllä toimii.
Laitoithan koodin taulukon moduuliin.
Työkaluista valitsin makrot. Sitten makrolle nimi(esimerkki). Sitten avautuvaan työkirja1 - module1(code) ikkunaan copypastella koodin. Näyttää tältä:
Sub esimerkki()
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
[C1] = [C1] [A1]
End If
End Sub
Napsauta hiiren oikealla taulukkovalitsinta taulukon vasemmassa alareunassa (esim:Taul1) -> Näytä koodi ja kopioit koodin sinne
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$A$2" Then
[C1] = [C1] [A1]
End If
End Sub
No nyt toimii. Kiitti paljon!
Mikä tossa kaavassa määrittää niiden solujen sijainnin, joihin arvot tulevat? Nyt ne tulevat A1 ja C1 soluihin. Jos haluan esimerkiksi käyttää B2 ja C2 soluja? Entä jos haluan useammalle riville saman kaavan?
tämä koodi toimii kun syötät B2 ja painat enter, lisää C2.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
[C2] = [C2] [B2]
End If
End Sub
Jos haluat useammalle riville täytyy If koodi tehdä useampaan kertaan. On varmaan olemassa helpompikin ratkaisu asiaan, mutta minä en sitä osaa. Mutta kolmella rivillä toimii näin.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$3" Then
[C2] = [C2] [B2]
End If
If Target.Address = "$B$4" Then
[C3] = [C3] [B3]
End If
If Target.Address = "$B$5" Then
[C4] = [C4] [B4]
End If
End Sub
Muuten hyvin toimii, mutta ongelmana on nyt se että, kun minulla on kaikilla riveillä arvot ja haluan lisätä esim. keskimmäiselle riville uuden arvon, muuttuu yllä oleva arvo myös!!!
Esim. B2=4 C2=4, B3=6 C3=6, B4=3 C4=3 , kun muutan B3=4 niin muuttuu C3=10, MUTTA myös muuttuu C2=8!!!
Tässä on makro joka enteriä painamalla lisää B-sarakkeeseen kirjoitetun arvon viereiseen soluun C-sarakkeeseen ja tyhjentää B-sarakkeen solun niin tupla lisäyksestä ei ole vaaraa.
Taulukon moduuliin.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo loppu:
If Target.Column = 2 Then
ActiveCell.Offset(-1, 1) = ActiveCell.Offset(-1, 1) _
ActiveCell.Offset(-1, 0)
Target.Offset(-1, 0).ClearContents
loppu:
End If
End Sub
Miten saan sen alkamaan vasta toiselta riviltä, kun eka riville pitäisi saada otsikot?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo loppu:
If Target.Address = "$B$2" Then GoTo loppu:
If Target.Column = 2 Then
ActiveCell.Offset(-1, 1) = ActiveCell.Offset(-1, 1) _
ActiveCell.Offset(-1, 0)
Target.Offset(-1, 0).ClearContents
loppu:
End If
End Sub
Luo laskuri, joka laskee tuotteelle hinnan, joka muodostuu seuraavasti:
veroton myyntihinta, johon lisätään 24% alv (liikevaihtovero) + toimituskulut 3,50€, mikäli paketti on alle 1kg JA tilavuudeltaan alle 5 dm3 (kuutiodesimetri), muussa tapauksessa toimituskulut ovat 7,00€.
Laskuri on aina parempi, mitä helpommin annetut arvot ovat myös jälkikäteen muuteltavissa (verot, toimituskulut ja postin maksut voivat aina muuttua).
Palautus kansioon.