Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: Simppeli(?) ehtolauseongelma Visual Basic

akitchu [25.01.2007 18:35:44]

#

Moro.
Eli kyseessä olis levyn myynti, jonka seurauksena myyntimäärä menis tilastot taulukkoon kyseisen levyn myynteihin tai uuden levyn kohdalla tekis uuden rivin.

Jos levy on jo taulukossa, se kyllä lisää myyntimäärää, mutta tekee myös uuden rivin ja lisää levyn uudestaan. Oon kokeillu vaikka mitä, mut tuntuu ettei vaan onnistu.

Eikö sen näin kuuluisi mennä?(ilmeisesti ei.)

trivi = Sheets("tilastot").Cells(1, 1) + 7 <- A1 solussa tilastossa olevien levyjen määrä.

For rivi = 7 To 1000 <- eniten myyty levy rivillä 7

If lev1 <> Sheets("tilastot").Cells(rivi, 3) Then <- jos levyä ei vielä ole myyty/tilastossa, niin... *tuntuu ettei tää ehto toimis. <> = erisuuri?

Sheets("tilastot").Cells(trivi, 1) = Sheets("tilastot").Cells(1, 1) & "." <- menee viimeiseksi tilastossa. lopussa päivitys myyntimäärän mukaan.
Sheets("tilastot").Cells(trivi, 2) = art1 <- esittäjä
Sheets("tilastot").Cells(trivi, 3) = lev1 <- levy
Sheets("tilastot").Cells(trivi, 5) = kpl1 <- myyntimäärä

ElseIf lev1 = Sheets("tilastot").Cells(rivi, 3) Then <- mutta jos levy onkin jo tilastoissa, niin..
Sheets("tilastot").Cells(rivi, 5) = Sheets("tilastot").Cells(rivi, 5) + kpl1 <- lisätään ainoastaan myyntimäärä edelliseen määrään

End If
Next rivi

Oonko pahasti metsässä?

Hycke [26.01.2007 12:04:02]

#

Ongelmanahan tuossa on se että jokainen rivi käydään joka tapauksessa läpi, eli lisäys tehdään aina ja päivitys silloin kun levy löytyy.
Ohessa yksi malli tuon tekemiseen 'oikein'

Dim löytyi As Boolean  'uusi muuttuja joka päivitetään jos levy löytyi eikä lisäystä tavitse tehdä
löytyi = False
rivi = 7
Do Until Sheets("tilastot").Cells(rivi, 3) = ""   'loopataan ensimmäiseen tyhjään riviin
    If lev1 = Sheets("tilastot").Cells(rivi, 3) Then 'löytyikö levyä
        Sheets("tilastot").Cells(rivi, 5) = Sheets("tilastot").Cells(rivi, 5) + kpl1 '  <- lisätään ainoastaan myyntimäärä edelliseen määrään
        löytyi = True
        Exit Do
    End If
    rivi = rivi + 1
Loop
If Not löytyi Then 'ei löytynyt -->lisätään
    Sheets("tilastot").Cells(trivi, 1) = Sheets("tilastot").Cells(1, 1) & "." '<- menee viimeiseksi tilastossa. lopussa päivitys myyntimäärän mukaan.
    Sheets("tilastot").Cells(trivi, 2) = art1 < -esittäjä
    Sheets("tilastot").Cells(trivi, 3) = lev1 < -levy
    Sheets("tilastot").Cells(trivi, 5) = kpl1 < -myyntimäärä
End If

akitchu [26.01.2007 15:20:29]

#

^Kiitos paljon, homma pelittää! :)

Juhko [26.01.2007 15:44:10]

#

Ja muistas, akitchu, ne kooditagit.. :P

akitchu [26.01.2007 17:17:19]

#

Print "Juu ei tullut tietenkään mieleen. Katsoin ohjeista nyt." 'testaus tulevaisuuden varalle

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta