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 Sub
Olen 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 Sub
Kun 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.