Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VBA: [VB] Textboxiin päivämäärän haku Excelin solusta

Aotes [21.12.2005 15:27:31]

#

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!

Hannu [21.12.2005 22:36:48]

#

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? :)

Vastaus

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

Tietoa sivustosta