Hei,
teen Excelillä avainrekisteriä. Avaimia on kolmea eri tyyppiä ja avaintyypin voi valita yhdistelmäruudun alasvetovalikosta kunkin luovutuksen yhteydessä. PHAKU-funktio palauttaa solulinkin avulla soluun valitun avaintyypin. Rekisteriin varataan rivejä tietylle määrälle luovutustapahtumia. Kuinka saan solulinkin kopioitumaan niin, että jokaisella luovutustapahtumalla eli rivillä on oma solulinkki, joka palauttaa valitun avaintyypin? En onnistunut, vaikka muutin viittauksen suhteelliseksi.
Terveisin
aloitteleva Bittinikkari
Moi Bittinikkari!
Mielestäni systeemi kannattais rakennella VBA-pohjalta, esim. tyyliin...
Taulukkoon Taul1 riville 1:
sarakeen 1 otsikoksi: Nimi, sarakeen 2 otsikoksi: Pvm & sarakeen 3 otsikoksi: Tyyppi
lisää taulukkoon myös komentopainike (Painike1)
'Taul1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row = 1 Then Taul1.Cells(Taul1.UsedRange.Rows.Count + 1, 1).Select End If If Target.Row > 1 And UserForm1.Visible Then UserForm1.TextBox1.Text = Taul1.Cells(Target.Row, 1).Value End If If Target.Row > 2 Then If Application.CountA(Rows(Target.Row - 1).EntireRow) = 0 Then Taul1.Cells(Taul1.UsedRange.Rows.Count + 1, 1).Select End If End If If Target.Column > 3 Then Taul1.Cells(Target.Row, 1).Select End If For i = 0 To 3 If Taul1.Cells(Target.Row, 3).Value = UserForm1.ComboBox1.list(i) Then UserForm1.ComboBox1.ListIndex = i: Exit For End If Next End Sub Private Sub Worksheet_Deactivate() If UserForm1.Visible Then Unload UserForm1 End If End Sub
Lomakkeelle UserForm1:
1 Tekstiruutu, 1 ComboBoxi & 2 komentopainiketta (Captions: Päivitä & Poista)
'UserForm1 Private Sub UserForm_Activate() Static loaded As Boolean If Not loaded Then loaded = True Sheets("Taul1").Select ComboBox1.list = Split(",avain1,avain2,avain3", ",") Range("A1").Select End If End Sub Private Sub CommandButton1_Click() If TextBox1.Text = "" Then TextBox1.SetFocus: Beep: Exit Sub End If If ComboBox1.ListIndex = 0 Then ComboBox1.SetFocus: Beep: Exit Sub End If Sheets("Taul1").Select Allow_Edit Cells(ActiveCell.Row, 1).Value = TextBox1.Text Cells(ActiveCell.Row, 2).Value = Format(Now(), "dd.MM.yyyy") Cells(ActiveCell.Row, 3).Value = ComboBox1.list(ComboBox1.ListIndex) Disable_Edit ActiveWorkbook.Save End Sub Private Sub CommandButton2_Click() Sheets("Taul1").Select Allow_Edit ActiveCell.EntireRow.Delete Range("A1").Select Disable_Edit ActiveWorkbook.Save End Sub Sub Allow_Edit() ActiveSheet.Unprotect Password:="salasana" End Sub Sub Disable_Edit() ActiveSheet.Protect Password:="salasana", DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
'Module1 Sub Painike1_Napsauta() If Not UserForm1.Visible Then UserForm1.Show 0 End If End Sub
'ThisWorkbook Private Sub Workbook_BeforeClose(Cancel As Boolean) Saved = True End Sub
Halutessaan valmiit simppelit Excel 2000-2003 & Excel 2007-2010 esimerkit voi impata Täältä
Tervehdys neau33!
Kiitoksia paljon sinulle vastauksestasi. Rekisterijärjestelmää on pitkälti toteutettu jo Excelin avulla. Olisiko muuta ratkaisua ongelmaan?
Ohjelmointitaustani on hyvin vähäinen, myös VBA:n osalta, useamman vuoden takaa kouluajoilta.
Terveisin
aloitteleva Bittinikkari
Aihe on jo aika vanha, joten et voi enää vastata siihen.