Hei!
Miten saan tehtyä alasvetolistan exceliin visual basicilla? Listaan pitäisi saada myös "tyhjä paikka"-valinta. Listasta valitaan yksi vaihtoehto. Vaihtoehtoja listaa tulee valikoiva määrä.
Dankkesöö
http://www.vbforums.com/showthread.php?t=437823
Mielestäni tuo vastaus toimii...
Moikka orriz!
tässä eräs tapa...
'Module1
Public lista() As String
Sub auto_open()
combo_fill
End Sub
Sub combo_fill()
ReDim lista(0 To 10) 'esim.
For i = LBound(lista) To Ubound(lista)
Select case i
Case 0
lista(i) = ""
Case Else
lista(i) = "Valinta " & CStr(i)
Next i
Taul1.ComboBox1.List = lista
Taul1.ComboBox1.ListIndex = 0
End Sub'Taul1
Private Sub ComboBox1_Change()
If ComboBox1.ListCount _
<> Ubound(lista) Then
combo_fill
End If
End Subneau33 kirjoitti:
Taul1.ComboBox1.List = lista
Taul1.ComboBox1.ListIndex = 0
Kiitoksia, tarviinkin vaan tätä kohtaa... Ongelmana on se, etten saa dynaamisesta taulukosta tietoja tohon listaan. Listaan ilmestyy vain ensimmäinen tieto taulukosta :/
MOI taas orriz!
Sinulta lienee jäänyt jotain oleellista huomaamatta. Esimerkin lista on itsessään dynaaminen taulukko! Esimerkin koodissa on kuitenkin pari virhettä, Select Case-lause on jäänyt päättämättä & ....
Private Sub ComboBox1_Change()
If ComboBox1.ListCount _
<> UBound(lista) + 1 Then ' + 1 koska taulukko on 0-kantainen
combo_fill
End If
End SubMikäli taas haluat 'swapata' lista'an toiseksi taulukoksi niin jutska onnistuu seuraavasti...
'Module1 Global lista As Variant
'Mikä tahansa moduuli
Sub aliohjelma()
Dim taulukko(0 To 5) As String
For i = 0 To 5
Select Case i
Case 0
taulukko(i) = ""
Case Else
taulukko(i) = "Item" & CStr(i)
End Select
Next i
lista = taulukko()
Taul1.ComboBox1.List = lista
Taul1.ComboBox1.ListIndex = 0
'Erase taulukko
End SubIlmaisin ehkä asian vähän epäselvästi :) Huomasin kyllä, että toi lista on dynaaminen taulukko. Ainut juttu oli, että en saanut omaa "tulokset" dynaamista taulukkoa tohon comboboksiin ilmestymään. Ainoastaan ensimmäinen tieto ilmestyi siihen.
Voinko oikasta näillä pelkästään? Loin dynaamisen taulukon alussa. Taulukkoon myöhemmin koodissa tulee tietoja jokusen verran:
Option Explicit Dim tulokset() As String
Sitten itse pääohjelmassa taulukon sisältö comboboksiin:
Private Sub CommandButton1_Click() . . . Taul1.ComboBox1.List = tulokset Taul1.ComboBox1.ListIndex = -1 . . . End Sub
Tässä nyt vaan kusee toi, että tulee vaan ensimmäinen tieto tulokset-taulukosta.
orriz kirjoitti:
...
Sitten itse pääohjelmassa taulukon sisältö comboboksiin:Private Sub CommandButton1_Click() . . . Taul1.ComboBox1.List = tulokset Taul1.ComboBox1.ListIndex = -1 . . . End SubTässä nyt vaan kusee toi, että tulee vaan ensimmäinen tieto tulokset-taulukosta.
. ' sanoisin [l]melkoisella[/l] varmuudella, . ' että se on jotakuinkin tässä välissä . ' kun hommasi kusee Taul1.ComboBox1.List = tulokset Taul1.ComboBox1.ListIndex = -1
Niinpä tekeekin :D Pitäis kai tehdä näitä hommia hereillä... Nyt toimii niinkuin pitää.
Nyt näyttäs tältä:
Option Explicit Dim tulokset() As String Dim lista() As String
Private Sub CommandButton1_Click()
.
.
.
ReDim lista(0 To 10)
For i = 0 To 10
Select Case i
Case 0
lista(i) = ""
Case Else
lista(i) = tulokset(0, i - 1)
End Select
Next i
Taul1.ComboBox1.List = lista
Taul1.ComboBox1.ListIndex = 0
.
.
.
End SubMiten saan tulokset-taulukon sisällön määrän selville?
MORJENS TAAS orriz!
Try this...
MsgBox UBound(tulokset, 1) 'ensimmäisen ulottuvuuden yläraja
MsgBox UBound(tulokset, 2) 'toisen ulottuvuuden yläraja
Dim i As Integer '* Option Explicit
For i = LBound(tulokset, 2) To UBound(tulokset, 2)
If Not IsNull(tulokset(0, i)) Then
If tulokset (0, i) = "" Then
MsgBox "MORJENS"
Else: MsgBox tulokset(0, i)
End If
End If
Next iKiitos paljon! Nyt toimii mainiosti! :) Eli homma hoitui tolla Uboundilla.
Tässä tämän hetkinen tilanne:
Option Explicit Dim tulokset() As String Dim lista() As String
'---tallennetaan haun tulokset alasvetolaatikkoon käyttäjän valittavaksi ---
ReDim lista(0 To UBound(tulokset, 2) + 1)
For i = 0 To UBound(tulokset, 2) + 1
Select Case i
Case 0
lista(i) = ""
Case Else
lista(i) = tulokset(0, i - 1)
End Select
Next i
Taul1.ComboBox1.List = lista 'taulukon lisäys comboboxiin etusivulle
Taul1.ComboBox1.ListIndex = 0 'listasta valitaan ensimmäinen kohta eli tyhjäPystyykö noi alasvetolaatikot luomaan koodilla excelin soluihin? Ohjelmassa ne tarvitaan vain silloin, kun hakutulos on löytynyt.
MOI TAAS orriz!
tässä vähän makropurkkaa...
Sub aliohjelma()
Dim boxexists As Boolean
If ActiveSheet.OLEObjects.Count > 0 Then
Dim OLEOBJ As OLEObject
For Each OLEOBJ In ActiveSheet.OLEObjects
If OLEOBJ.Name = "ComboBox1" Then
boxexists = True: Exit For
End If
Next
End If
If hakutulos = True And Not boxexists Then
Dim cboX As Single
Dim cboY As Single
Dim cboW As Single
Dim cboH As Single
cboX = Cells(1, 10).Left
cboY = Cells(1, 10).Top
cboW = Cells(1, 10).Width * 2
cboH = Cells(1, 1).Height * 1.5
ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=cboX, Top:=cboY, Width:=cboW, _
Height:=cboH).Select
ElseIf not hakutulos And boxexists Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.Delete
End If
End Subelikä opettele käyttämään sitä makronauhuria...
Näyttääpä kauhealta toi makropurkka :D Jos tuosta jotain sais aikaan... pitääpä kokeilla :)
Nyt toimii alasvetolaatikon luonti, mut ei ihan täydellisesti. En osaa sanoa, missä vika on. Tulee virheilmoitus: "Compile error: Method or data member not found". Eli tämä tulee silloin, kun alasvetolaatikkoa ei ole valmiina. Kuitenkin koodin pitäisi se luoda, jos oikein käsitin?
Kursori jää tähän kohtaan. "ComboBox1" maalattuna.
. . Taul1.ComboBox1.List = lista . .
Ja tässäpä oleellinen ohjelman pätkä:
'-------------------------------------------------
'-------------ALIOHJELMA "alasvetolaatikko"-------
'-------------------------------------------------
Private Sub alasvetolaatikko(hakutulos As Boolean)
Dim boxexists As Boolean
If ActiveSheet.OLEObjects.Count > 0 Then
Dim OLEOBJ As OLEObject
For Each OLEOBJ In ActiveSheet.OLEObjects
If OLEOBJ.Name = "ComboBox1" Then
boxexists = True: Exit For
End If
Next
End If
If hakutulos = True And Not boxexists Then
Dim cboX As Single
Dim cboY As Single
Dim cboW As Single
Dim cboH As Single
cboX = Cells(14, 9).Left
cboY = Cells(14, 9).Top
cboW = Cells(14, 9).Width * 1
cboH = Cells(14, 9).Height * 1.1
ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=cboX, Top:=cboY, Width:=cboW, _
Height:=cboH).Select
ElseIf Not hakutulos And boxexists Then
ActiveSheet.Shapes("ComboBox1").Select
Selection.Delete
End If
End Sub'--------------------------------------------------------------
'-------------ALIOHJELMA "lisaatieto_alasvetolaatikkoon"-------
'--------------------------------------------------------------
Private Sub lisaatieto_alasvetolaatikkoon()
Dim i As Integer
ReDim lista(0 To UBound(tulokset, 2) + 1)
For i = 0 To UBound(tulokset, 2) + 1
Select Case i
Case 0
lista(i) = ""
Case Else
lista(i) = tulokset(0, i - 1)
End Select
Next i
Taul1.ComboBox1.List = lista 'tähän jumahti
Taul1.ComboBox1.ListIndex = 0
End SubHEIPPA orriz!
olen kauheasti pahoillani, etten pysty auttamaan enempää, sillä en mitenkään pysty kaatamaan loogista ajattelukykyä päähäsi...
Selma! Kiitos avusta lukuunottamatta tätä viimeisen viestin vit.uilua... Osaan sentään loogisesti ajatella, vaikken täysin vba:n kikkakolmosia tajua. Tulin täältä vinkkejä hakemaan alasvetolaatikkoa varten, jota käytän tällä hetkellä isommassa kokonaisuudessa.
Toivotaan, että saan ton toimii. Jos ei homma ala toimia, niin pitäneen oikasta helpommalla tavalla.
Tattis ja dankkesöö!
Osaatko muuten sanoa, miksi tämä ei toimi excelissä?
ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=cboX, Top:=cboY, Width:=cboW, _
Height:=cboH).SelectMOI taas orriz!
tarkoitus ei ollut eikä ole mitenkään vit.uilla...ainoastaan houkutella käyttämään aivosoluja...
Taul1 laskentataulukko (testi)
A B
---------------------
1 | 10 | Valinta1
2 | 20 | Valinta2
3 | 30 | Valinta3
4 | 15 | Valinta4
5 | 28 | Valinta5
6 | 40 | Valinta6
7 | 22 | Valinta7'Module1 (Globaali Moduuli)
Sub auto_close()
Sheets("Taul1").Activate
ActiveSheet.TextBox1.Text = ""
Sheets("Taul1").alasvetolaatikko False
End Sub'Taul1 koodit
'taluun: tekstiboxi, nappi & comboboxi
Dim tulokset() As Variant
Dim lista As Variant
Dim objekti As Object
Private Sub CommandButton1_Click()
laatikkoleikki
End Sub
Sub laatikkoleikki()
Sheets(1).Activate
If ActiveSheet.TextBox1.Text = "" Then
MsgBox "Aseta hakuarvo"
ActiveSheet.TextBox1.Activate
Exit Sub
End If
Dim Moniarvo As Boolean
Dim Arvot() As String
Dim i As Long
If InStr(ActiveSheet.TextBox1.Text, "-") > 0 Then
If InStrRev(ActiveSheet.TextBox1.Text, "-") = _
InStr(ActiveSheet.TextBox1.Text, "-") Then
Moniarvo = True
ElseIf InStrRev(ActiveSheet.TextBox1.Text, "-") _
<> InStr(ActiveSheet.TextBox1.Text, "-") Then
MsgBox "Epäkelpo hakuarvo"
ActiveSheet.TextBox1.Text = ""
ActiveSheet.TextBox1.Activate
Exit Sub
End If
End If
If Moniarvo Then
Arvot = Split(ActiveSheet.TextBox1.Text, "-")
For i = 0 To 1
Arvot(i) = Trim(Arvot(i))
Next i
Else
ReDim Arvot(1)
For i = 0 To 1
Arvot(i) = ActiveSheet.TextBox1.Text
Next i
End If
Dim solu As Variant
Dim cnt As Long
Dim rivit As Long
Application.ScreenUpdating = False
ActiveSheet.UsedRange.Select
rivit = ActiveSheet.UsedRange.Cells.SpecialCells( _
xlCellTypeLastCell).Row
cnt = -1
For i = 1 To rivit
If Cells(i, 1).Value >= CLng(Arvot(0)) _
And Cells(i, 1).Value <= CLng(Arvot(1)) Then
cnt = cnt + 1
ReDim Preserve tulokset(1, cnt)
tulokset(0, cnt) = Cells(i, 2).Value
tulokset(1, cnt) = Cells(i, 1).Value
End If
Next i
Cells(1, 1).Select
ActiveSheet.CommandButton1.Activate
If cnt > -1 Then
alasvetolaatikko True
lisaatieto_alasvetolaatikkoon
Else
alasvetolaatikko False
ActiveSheet.TextBox1.Text = ""
End If
Application.ScreenUpdating = True
End Sub
Private Sub lisaatieto_alasvetolaatikkoon()
Dim i As Integer
ReDim lista(0 To UBound(tulokset, 2) + 1)
For i = 0 To UBound(tulokset, 2) + 1
Select Case i
Case 0
lista(i) = ""
Case Else
lista(i) = tulokset(0, i - 1)
End Select
Next i
On Error Resume Next
objekti.Object.List = lista
objekti.Object.ListIndex = 0
If Err <> 0 Then
Err.Clear
On Error GoTo 0
ActiveSheet.ComboBoxi.List = lista
ActiveSheet.ComboBoxi.ListIndex = 0
End If
End Sub
Private Sub alasvetolaatikko(hakutulos As Boolean)
Dim boxexists As Boolean
Sheets(1).Activate
If ActiveSheet.OLEObjects.Count > 0 Then
Dim OLEOBJ As OLEObject
For Each OLEOBJ In ActiveSheet.OLEObjects
If OLEOBJ.Name = "ComboBoxi" Then
boxexists = True: Exit For
End If
Next
End If
If hakutulos And Not boxexists Then
Dim cboX As Single
Dim cboY As Single
Dim cboW As Single
Dim cboH As Single
cboX = Cells(1, 7).Left
cboY = Cells(1, 7).Top
cboW = Cells(1, 7).Width * 1.5
cboH = Cells(1, 7).Height * 1.5
Set objekti = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=cboX, Top:=cboY, Width:=cboW, _
Height:=cboH)
objekti.Name = "ComboBoxi"
objekti.Visible = True
ElseIf Not hakutulos And boxexists Then
ActiveSheet.Shapes("ComboBoxi").Delete
Set objekti = Nothing
End If
End SubMORJENS TAAS orriz!
vaihda edellisen esimerkin Taul1-koodiksi allaoleva ja saat luotua siihen boxiin tarvittavan proseduurin ja myös poistettua sen lennossa...
Private tulokset() As Variant
Private lista As Variant
Private objekti As Object
Private Sub CommandButton1_Click()
laatikkoleikki
End Sub
Sub laatikkoleikki()
Sheets(1).Activate
If ActiveSheet.TextBox1.Text = "" Then
MsgBox "Aseta hakuarvo"
ActiveSheet.TextBox1.Activate
Exit Sub
End If
Dim Moniarvo As Boolean
Dim Arvot() As String
Dim i As Long
If InStr(ActiveSheet.TextBox1.Text, "-") > 0 Then
If InStrRev(ActiveSheet.TextBox1.Text, "-") = _
InStr(ActiveSheet.TextBox1.Text, "-") Then
Moniarvo = True
ElseIf InStrRev(ActiveSheet.TextBox1.Text, "-") _
<> InStr(ActiveSheet.TextBox1.Text, "-") Then
MsgBox "Epäkelpo hakuarvo"
ActiveSheet.TextBox1.Text = ""
ActiveSheet.TextBox1.Activate
Exit Sub
End If
End If
If Moniarvo Then
Arvot = Split(ActiveSheet.TextBox1.Text, "-")
For i = 0 To 1
Arvot(i) = Trim(Arvot(i))
Next i
Else
ReDim Arvot(1)
For i = 0 To 1
Arvot(i) = ActiveSheet.TextBox1.Text
Next i
End If
Dim solu As Variant
Dim cnt As Long
Dim rivit As Long
Application.ScreenUpdating = False
ActiveSheet.UsedRange.Select
rivit = ActiveSheet.UsedRange.Cells.SpecialCells( _
xlCellTypeLastCell).Row
cnt = -1
For i = 1 To rivit
If Cells(i, 1).Value >= CLng(Arvot(0)) _
And Cells(i, 1).Value <= CLng(Arvot(1)) Then
cnt = cnt + 1
ReDim Preserve tulokset(1, cnt)
tulokset(0, cnt) = Cells(i, 2).Value
tulokset(1, cnt) = Cells(i, 1).Value
End If
Next i
Cells(1, 1).Select
ActiveSheet.CommandButton1.Activate
If cnt > -1 Then
alasvetolaatikko True
lisaatieto_alasvetolaatikkoon
Else
alasvetolaatikko False
ActiveSheet.TextBox1.Text = ""
End If
Application.ScreenUpdating = True
End Sub
Sub alasvetolaatikko(hakutulos As Boolean)
Dim boxexists As Boolean
Sheets("Taul1").Activate
If ActiveSheet.OLEObjects.Count > 0 Then
Dim OLEOBJ As OLEObject
For Each OLEOBJ In ActiveSheet.OLEObjects
If OLEOBJ.Name = "ComboBoxi" Then
boxexists = True: Exit For
End If
Next
End If
If hakutulos = True And Not boxexists Then
Dim cboX As Single
Dim cboY As Single
Dim cboW As Single
Dim cboH As Single
cboX = Cells(1, 7).Left
cboY = Cells(1, 7).Top
cboW = Cells(1, 7).Width * 1.5
cboH = Cells(1, 7).Height * 1.5
Set objekti = ActiveSheet.OLEObjects.Add( _
ClassType:="Forms.ComboBox.1", _
Link:=False, DisplayAsIcon:=False, _
Left:=cboX, Top:=cboY, Width:=cboW, _
Height:=cboH)
objekti.Name = "ComboBoxi"
objekti.Visible = True
ElseIf Not hakutulos And boxexists Then
ActiveSheet.Shapes("ComboBoxi").Delete
Set objekti = Nothing
End If
Dim koodi As String
koodi = "Private Sub ComboBoxi_Change()" _
& vbCrLf & " If comboBOxi.ListIndex > 0 Then" _
& vbCrLf & " MsgBox ComboBoxi.Text" _
& vbCrLf & " End If" & vbCrLf & "End Sub"
Dim viimeinenrivi As Long
Dim koodi_lisatty As Boolean
Dim alku As Long, i As Long
viimeinenrivi = ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule.CountOfLines
For i = 1 To viimeinenrivi
If ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule.Lines(i, 1) _
= "Private Sub ComboBoxi_Change()" Then
koodi_lisatty = True: alku = i: Exit For
End If
Next i
If koodi_lisatty Then
With ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule
For i = viimeinenrivi To alku Step -1
.DeleteLines i
Next i
End With
End If
End Sub
Sub lisaatieto_alasvetolaatikkoon()
Dim i As Long
ReDim lista(0 To UBound(tulokset, 2) + 1)
For i = 0 To UBound(tulokset, 2) + 1
Select Case i
Case 0
lista(i) = ""
Case Else
lista(i) = tulokset(0, i - 1)
End Select
Next i
On Error Resume Next
objekti.Object.List = lista
objekti.Object.ListIndex = 0
If Err <> 0 Then
Err.Clear
On Error GoTo 0
ActiveSheet.ComboBoxi.List = lista
ActiveSheet.ComboBoxi.ListIndex = 0
End If
Dim koodi As String
koodi = "Private Sub ComboBoxi_Change()" _
& vbCrLf & " If comboBOxi.ListIndex > 0 Then" _
& vbCrLf & " MsgBox ComboBoxi.Text" _
& vbCrLf & " End If" _
& vbCrLf & "End Sub"
Dim viimeinenrivi As Long
Dim koodilisatty As Boolean
viimeinenrivi = ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule.CountOfLines
For i = 1 To viimeinenrivi
If ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule.Lines(i, 1) _
= "Private Sub ComboBoxi_Change()" Then
koodi_lisatty = True: Exit For
End If
Next i
If Not koodi_lisatty Then
With ActiveWorkbook.VBProject. _
VBComponents(ActiveSheet.Name).CodeModule
.InsertLines .CountOfLines + 1, koodi
End With
End If
End SubKiitos tästä! Tarpeeksi joutuu käyttämään aivosoluja, kun ei ole mitään kommentointia koodissa. Kokeilen silti tätä esimerkkiä.
Äh... loppu mielenkiinto. Teenkin suoraan soluihin 200 comboboksia. Se on tarvittava vakiomäärä. Sit pitäs comboboksit täyttää ohjelman joka kierroksen aikana. Seuraava on siis for-silmukan sisällä. Tässä yksi kierros:
'------------------------------
'--- ALASVETOLAATIKKO ALKAA ---
'------------------------------
Taul1.ComboBox1.Clear 'comboboksin tyhjennys
ReDim lista(0 To UBound(tulokset, 2) + 1)
For i = 0 To UBound(tulokset, 2) + 1
Select Case i
Case 0
lista(i) = "" 'lisää tyhjän valikkoon
Case Else
lista(i) = tulokset(0, i - 1) 'lisää tiedon valikkoon
End Select
Next i
Taul1.ComboBox1.List = lista 'taulukon lisäys comboboxiin
Taul1.ComboBox1.ListIndex = 0 'listasta valitaan ensimmäinen kohta
ReDim tulokset(0, 0) As String 'tulokset-taulukon tyhjennys
'-------------------------------
'--- ALASVETOLAATIKKO LOPPUU ---
'-------------------------------Miten saan muuttujan upotettua tuohon (Taul1.ComboBox2.List)? Eli numero 2 korvattas muuttujalla. Yritin kokeilla &-merkillä, mut ei toimi.
MORJENS TAAS orriz!
en tarkoituksellisesti kommentoinut edellisiä koodiesimerkkejäni, koska tarkoitukseni oli herättää mielenkiinto itsenäiseen koodin tutkimiseen, joka on mielestäni se ehdottomasti paras tapa kehittää ohjelmointitaitojaan...
'...
' tauluun upotetut ohjausobjektit näkyvät OLEObjekteina,
' joten määritellään ensin tarvittavat muuttujat...
Dim oleObj As OLEObject, cnt As Integer
' ja käydään silmukassa läpi kaikki taulun OLEObjektit...
For Each oleObj In Taul1.OLEObjects
' jos vuorossa olevan OLEObjektin nimi
' sisältää merkkijonon "ComboBox" niin
If InStr(oleObj.Name, "ComboBox") > 0 Then
' kasvatetaan jokaisella silmukan
' kierroksella laskurin arvoa yhdellä...
cnt = cnt + 1
' ja liitetään merkkijonoon "ComboBox"
' merkkijonoksi muutettu laskuriarvo
' CStr(cnt), jolloin merkkijonoyhdistelmää
' voidaan käyttää muuttujana objektiviittauksessa
Taul1.OLEObjects("ComboBox" & CStr(cnt)).Object.Clear
Taul1.OLEObjects("ComboBox" & CStr(cnt)).Object.List = lista
Taul1.OLEObjects("ComboBox" & CStr(cnt)).Object.ListIndex = 0
End If
Next
'......elikä jos mielenkiinto useinkin loppuu lyhyeen niin kannattaisi alkaa harkita vaihtamista johonkin toiseen harrastukseen.
Kiitos! Kokeilen tätä viikonloppuna kunhan tässä töistä joutaa.
Käyn kyllä koodin läpi ja ymmärrän mitä koodi tekee. Ei muuten opi ei :) Mut jos et kommentoi yhtään koodia, niin on melko vaikeaa seurata koodin päälimmäistä ideaa :/
Jes, nyt toimii hyvin. Muokkailin tuota omaan ohjelmaan ja nyt sain homman pelaamaan mainiosti. Kiitoksia vaivannäöstä ja hyvää kesän jatkoa! :))
Aihe on jo aika vanha, joten et voi enää vastata siihen.