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 Sub
Hei kiitos kovasti! En vielä ehtinyt kokeilemaan toimiiko tarkoitukseen, mutta ainakin näyttä lupaavalta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.