Moro
Olen tehnyt Excelillä taulukoita, joihin syötetään tietoja formeilla. Pitäisi saada formin yhteen textboxiin oletusarvoksi muuttuja, joka sijaitsee vaihtoehtoisesti viidessä eri taulukossa. Eli ideana on, että käyttäjä syöttää töitä taulukkoon ja määrittää aloituspäivämäärän työlle. Kun hän syöttää seuraavan työn, formilla olisi textboxissa oletuksena edellisen työn lopetuspäivämäärä...
If ComboBox1 = "Työpiste 1" Then vapaa = Worksheets("Työpiste 1").Cells(1, 1) Worksheets("Työpiste 1").Cells(vapaa, 2) = TextBox1 Worksheets("Työpiste 1").Cells(vapaa, 3) = TextBox2 Worksheets("Työpiste 1").Cells(vapaa, 4) = TextBox3 Worksheets("Työpiste 1").Cells(vapaa, 5) = TextBox4 Worksheets("Työpiste 1").Cells(vapaa, 6) = Worksheets("Työpiste 1").Cells(vapaa, 11) Worksheets("Työpiste 1").Cells(vapaa, 7) = Textbox5 Worksheets("Työpiste 1").Cells(vapaa, 8) = TextBox6 Worksheets("Työpiste 1").Cells(vapaa, 9) = Worksheets("Työpiste 1").Cells(vapaa, 13) Worksheets("Työpiste 1").Cells(vapaa, 10) = TextBox7 End if
Textbox5:ssa pitäisi siis olla formilla oletusarvona Worksheets("Työpiste 1").Cells(vapaa - 1, 9), jos combobox1 = "Työpiste1". Eli vain formilla textbox5:sen oletusarvona, textbox5:seen syötetyn arvon pitäisi mennä vielä taulukon soluun x.
En ole löytänyt textboxien ominaisuuksista mahdollisuutta viitata boxin arvoksi jotain jostain...
Vielä toinen kysymys. Miten onnistuisi VB:llä antamaan Excelin solujen arvoksi textbox1, välillä textbox2-textbox3. VB siis hakisi Excelin taulukosta textbox2:sen ja textbox3:sen arvot, ja antaisi väliin jääville solulle arvoksi textbox1:sen.
Textbox1 on luku. Textbox2 ja textbox3 ovat päivämääriä. (Edit.Niin ja txtb2 ja txtb3 ovat samalla vaakarivillä.) Sitenkin on mahdollista, että VB etsii vain textbox2:sen ja antaa x-määrälle soluja vaakasuunnassa arvoksi textbox1:sen.
En ole kovinkaan paljoa käyttänyt VB:tä tai Exceliä, nämäkin tiedot itse hankittuja/opittuja... Eli apua kaivataan kovasti ja kiitollisia ollaan kaikesta avusta!
Aotes kirjoitti:
Textbox5:ssa pitäisi siis olla formilla oletusarvona Worksheets("Työpiste 1").Cells(vapaa - 1, 9), jos combobox1 = "Työpiste1". Eli vain formilla textbox5:sen oletusarvona, textbox5:seen syötetyn arvon pitäisi mennä vielä taulukon soluun x.
'Tällä asetetaan Textbox5:n oletusarvo jossain sopivassa ohjelmakohdassa. Private Sub AsetaOletukset() if combobox1 = "Työpiste 1" then Textbox5 = Worksheets("Työpiste 1").Cells(vapaa-1,9) End if End Sub 'Tällä asetetaan Textbox5:n arvo soluun, kun Textbox5:ssä painetaan enteriä. Private Sub TextBox1_KeyUp (ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode <> 13 Then '13 on enterin Keycode. Exit Sub End If Worksheets("Työpiste 1").Cells(Rivi,Sarake)=Textbox5 End Sub
Aotes kirjoitti:
Vielä toinen kysymys. Miten onnistuisi VB:llä antamaan Excelin solujen arvoksi textbox1, välillä textbox2-textbox3. VB siis hakisi Excelin taulukosta textbox2:sen ja textbox3:sen arvot, ja antaisi väliin jääville solulle arvoksi textbox1:sen.
If Worksheets("Työpiste 1").Cells(Rivi,Sarake) > Textbox2 and Worksheets("Työpiste 1").Cells(Rivi,Sarake) < Textbox3 then Worksheets("Työpiste 1").Cells(Rivi,Sarake) = Textbox1 End if
En ehtinyt testailla, joten voi olla syntaksi- / ajatusvirheitä.
Periaate on kuitenkin tuo.
Ja valmista koodiahan ei saa antaakaan, vai miten se oli? :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.