@odeddvir אמר בהזנת נתונים לטבלה קיימת:
@פלורידה לדעתי הדרך שחשבת עליה היא טובה.
למעשה הפקודה הזו עבדת מידי לאט. משהו כמו 3 שניות עד לסיום הפקודה.
אני מצרף את הקוד עד עתה:
' הצהרה על משתנה גלובלי
Public DataWB As Workbook
' פונקציה לשליפה של קוד לפי פרמטרים
Public Function m_kata(wordText As String) As Variant
masecet = ActiveSheet.Range("A146")
ActiveColumn = ActiveCell.Column - ActiveCell.ListObject.DataBodyRange.Column + 1
tanivchar = Selection
ActiveTable = ActiveCell.ListObject
amuda1 = ActiveSheet.ListObjects(ActiveTable).ListColumns(1).DataBodyRange
amudanivchar = ActiveSheet.ListObjects(ActiveTable).ListColumns(ActiveColumn).DataBodyRange
daf = Application.VLookup(tanivchar, Application.Choose(Array(1, 2), amudanivchar, amuda1), 2, 0)
m_kata = Application.Index(Sheets("מקט").Range("T6:BF356"), Application.Match(daf, Sheets("מקט").Range("S6: S356"), 0), Application.Match(masecet, Sheets("מקט").Range("T6:BF6"), 0))
End Function
'פונקציה להכנסת הקוד בגליון מסויים בטבלה מסויימת
Public Function AddRowToTable(sheet As Worksheet, tableName As String, rowData() As Variant)
Dim lastRowNumber As Integer
Dim lastRowRange As Range
With Sheets("admin").ListObjects("data")
.ListRows.Add
lastRowNumber = .ListRows.Count
Set lastRowRange = .ListRows(lastRowNumber).Range
End With
With lastRowRange
Dim i As Integer
For i = 0 To UBound(rowData)
If i < .Columns.Count Then .Cells(1, i + 1) = rowData(i)
Next i
End With
End Function
sub קריאה_לקודים_הקודמים()
Dim values(6) As Variant
mezaheH = 1
values(0) = mezaheH
values(1) = m_kata(Selection)
values(2) = Date
AddRowToTable ActiveSheet, "table1", values
End sub