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 SubLomakkeelle 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 SubHalutessaan 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.