Hei,
Olen työstänyt excelin VBA:lla automatisoitua exceliä, jossa kilpailijan tiedot lisätään userformissa ja josta ne siirtyvät exceliin (alla olevalla tavalla)
A B C 1 Nimi Syntymäaika Laji 2 Herra x 1.2.2005 Pituus 3 Herra y 4.7.2006 Keihäs
Olen toteuttanut tämän siten, että jokaisessa sarakkeessa on nimetty (esim. lisää nimi) alue joka siirtyy aina tietoja lisättäessä yhden alaspäin ja ohjelma lisää tiedon kyseisen alueen yläpuolelle.
Private Sub CommandButton1_Click()
Sheets("Kilpailijat").Range("Nimi").Insert shift:=xlDown
Sheets("Kilpailijat").Range("Syntymäaika").Insert shift:=xlDown
Sheets("Kilpailijat").Range("Laji").Insert shift:=xlDown
LisääNimi.Select
ActiveCell.Offset(-1, 0).Select
ActiveCell.FormulaR1C1 = ListBox1.Value
LisääSyntymäaika.Select
ActiveCell.Offset(-1, 0).Select
ActiveCell.FormulaR1C1 = ListBox2.Value
LisääLaji.Select
ActiveCell.Offset(-1, 0).Select
ActiveCell.FormulaR1C1 = ListBox3.Value
End SubOlen yrittänyt saada ohjelman toimimaan siten, että kaikki päivittäminen tapahtuisi userformien kautta. Eli tiedot pitäisi vielä pystyä hakemaan excelistä takaisin userformiin, jossa tietoja voidaan päivittää. Ongelmana on, että Kilpailijoiden määrä vaihtelee ja muuttuu. Eli alueen josta tiedot tulevat userformin listboxiin pitäisi elää tietomäärän mukana.
Tätä ongelmaa olen yrittänyt ratkaista useilla eri keinoilla mutta huonolla menestyksellä. Alla on yksi yritys, joka ei kylläkään toimi. Yritin luoda alueen joka elää tietomäärän kanssa käyttämällä sarakkeen ensimmäisellä rivillä olevaa aluetta ja sitä viimeisellä rivillä olevaa aluetta joka aina laskee kun tietoa lisätään.
Private Sub UserForm_Activate()
'Luodaan alue joka alkaa otsikon (esim nimi) alapuolelta ja jatkuu aina viimeisimpään lisättyyn riviin asti
Dim Alue As Range
Dim Alku As Range
Dim Nimi As Range
Set Alku = Sheets("Kilpailijat").Range("A1")
Set Nimi = Sheets("Kilpailijat").Range("Nimi")
Nimi.Offset(1,0)
Alku.Offset(-1,0)
Set Alue = Sheets("Kilpailijat").Range("Alku:Nimi")
Listbox1.Rowsource = "Alue"
End SubKun tiedot saadaan näkyviin Listbox1:seen niin valittaessa henkilö, pitäisi kyseisen henkilön tietojen tulla excelistä userformiin, jossa niitä muokataan ja kun tiedot viedään exceliin niin tieto tallentuu takaisin listaan.
Olen lukenut oppaita ja ohjeita, mutta kahden päivän jälkeen tämä ei vain aukea. Toivottavasti joku osaa auttaa. Kiitos!
Mod. huom: voi käyttää tasalevyistä tekstiä taulukkoon!
Aihe on jo aika vanha, joten et voi enää vastata siihen.