Hei, on tullut vähän pohdittua, että miten excelin saa (visual basicin avulla) napin, jolla voi lisätä taulukkoon uuden rivin ja syöttää tähän tietyt tiedot?
Moi nar-tutka!
Toteutus riippuu paljolti siitä, ovatko mainitsemasi tietyt tiedot ennalta määriteltyä vakiokamaa vai haetaanko data kenties saman työkirjan jonkin laskentataulukon tietyistä soluista tai peräti jostain ulkoisesta lähteestä.
mutta yksinkertaisimmillaan ehkä näin:
'ThisWorkbook Private Sub Workbook_BeforeClose(Cancel As Boolean) RemoveCmdBar End Sub Private Sub Workbook_Open() AddCmdBar End Sub
'Module1 (globaali moduuli)
Sub AddCmdBar()
RemoveCmdBar
On Error Resume Next
Dim CmdBar As CommandBar
Dim CmdBtn As CommandBarButton
Set CmdBar = Application.CommandBars.Add(Name:="OMA_NAPPI", Position:=msoBarTop, Temporary:=True)
CmdBar.Visible = True
Set CmdBtn = CmdBar.Controls.Add(Type:=msoControlButton, ID:=2949, Before:=1)
With CmdBtn
.Caption = "&Lisää rivi"
.Style = msoButtonCaption
.OnAction = "AddNewRow"
End With
If Err <> 0 Then
Err.Clear: On Error GoTo 0
End If
End Sub
Sub RemoveCmdBar()
On Error Resume Next
Application.CommandBars("OMA_NAPPI").Controls(1).Delete
Application.CommandBars("OMA_NAPPI").Delete
If Err <> 0 Then
Err.Clear: On Error GoTo 0
End If
End Sub
Sub AddNewRow()
'valitsee aktiivisen taulukon ensimmäisen rivin
Rows("1:1").Select
'lisää "uuden" rivin valitulle riville
Selection.Insert Shift:=xlDown
AddData Selection.Row
End Sub
Sub AddData(xrow As Integer)
'lisää tiedot määritetylle riville sarakkeisiin 1, 2 & 3
Cells(xrow, 1).Value = 123 'esim.
Cells(xrow, 2).Value = 456
Cells(xrow, 3).Value = 789
'jne...
End SubHei kiitos kovasti! En vielä ehtinyt kokeilemaan toimiiko tarkoitukseen, mutta ainakin näyttä lupaavalta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.