Pitäisi saada excellä laskettua työtuntien hinta.
Käyttöliittymään tulee ruutu johon kirjoitetaan tuntimäärä, alasvetovalikko josta valitaan työlaji, 1 valintaruutu josta rastitetaan jos tulee hälytysraha sekä 2 valintanappia joista valitaan onko kyseessä pyhätyö (kyllä ja ei vaihtoehdot).
Työlajeilla on eri hinnoittelu, esim. siivous; tuntipalkka 11, hälyraha 5, pyhäkorvaus 7. Huolto; tuntipalkka 15, hälyraha 7, pyhäkorvaus 8. Jne. Nuo tuntipalkat löytyy taulukosta ja toiseen taulukkoon pitäisi tulostaa tuo tulos.
Neuvokaa miten tuollainen pitäisi tehdä. Millaista koodia.
mescali kirjoitti:
Millaista koodia.
Visual Basic for Application -koodilla lähtisin tekemään, kun sitä Office tyrkyttää.
Ei tuossa kai mitään kovin moni mutkaista ole. Opettelet ensin Visual Basicin perusteita hiukan vaikkapa Ohjelmointiputkan omasta oppaasta. Sen jälkeen syvennyt formin (lomakkeen) erilaisten nappien & lootien käsittelyyn. Noilla tiedoilla pitäisi päästä alkuun... ja tarkentaa sitten kysymystä.
Officen Visual Basic Editorin helpistä kannattaa tutkailla hakusanoja cell, range, sheet...
Vaikea oli tuon selvemmin selittää.. mutta onnistuin jo tekemään nuo laskut. Ei niistä sen enempää.
Nyt mulla on alla oleva koodi mutta tuo if komento ei toimi. Miten se pitäisi muuttaa että kun painaa "yes", ohjelma tekee makron loppuun ja painamalla "no" toiminto peruuntuu?
Sub Valmis() If MsgBox("Ovatko tiedot oikein?", vbYesNo) = vbNo Then Cancel = True End If Sheets("Rivit").Select Range("A16:J16").Select Selection.EntireRow.Insert Range("A3:J3").Select Selection.Copy Range("A16").Select Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False Application.CutCopyMode = False Range("A3").Select Sheets("Käyttöliittymä").Select Application.Goto Reference:="Syöttöalue" Selection.ClearContents Range("E15").Select Selection.ClearContents Range("D12").Select End Sub
Toinen kysymys; Nyt tuo makro toimii painamalla Valmis painiketta. Haluan muuttaa sen niin että makro käynnistyy painamalla jompaa kumpaa kahdesta valintanapista jotka mulla on ryhmitettynä(kyllä ja ei vaihtoehtoineen). Miten tuota pitäisi sitten muuttaa, meneekö sekin If komennoilla?
Kuten varmaan näkyy, oon ihan aloittelija näissä hommissa..
Poista Cancel = True ja siirrä End If loppuun ennen End Subia. Vaihda myös vbNo vbYesksi, niin koodi suoritetaan painamalla Yes.
Jos tarkoitat valintanapilla OptionButtonia, niin vaikka ne onkin ryhmitetty, niin niille on molemmille kuitenkin laitettava koodi, jonka ne toteuttaa valinnan tapahtuessa. Alla yksi esimerkki käytöstä, jos halutaan tietää, kumpaa valinnoista on klikattu. Sivulla siis kaksi OptionButtonia, OptionButton1 ja OptionButton2.
Private Sub OptionButton1_Click() Call Test(1) End Sub Private Sub OptionButton2_Click() Call Test(2) End Sub Sub Test(kumpi As Integer) If kumpi = 1 Then MsgBox "Foo" ElseIf kumpi = 2 Then MsgBox "Bar" End If End Sub
Aihe on jo aika vanha, joten et voi enää vastata siihen.