وعليكم السلام ورحمه الله وبركاته تفضل اخى
Private Sub TextBox2_Change()
Application.OnTime Now() + TimeValue("00:00:02"), "ورقة1.test"
End Sub
Sub test()
Dim Wb As Workbook, WbName As String, xWb As Workbook
Dim ws As Worksheet, sh As Worksheet
Dim X, M, N
Set ws = ThisWorkbook.Worksheets("ورقة1")
If TextBox2 = "" Then
AutoFilterMode = False
Else
WbName = "2024.xlsm"
WbPath = ThisWorkbook.Path & "\" & WbName
For Each Wb In Workbooks
If Wb.Name = WbName Then Exit For
Next
On Error Resume Next
Set Wb = Application.Workbooks.Item(WbName)
On Error GoTo 0
If Not Wb Is Nothing Then
Set sh = Wb.Worksheets("الأرصدة")
ws.Range("H1").AutoFilter , field:=8, Criteria1:=TextBox2.Text
1 M = Application.Match(CDbl(Date), sh.Rows(2), 0)
If IsError(M) Then ' insert column to date if not found
N = Application.Match("*", sh.Rows(2), 0)
sh.Columns(N).Insert
sh.Cells(2, N).Value = Date
GoTo 1
End If
X = Application.Match(Val(TextBox2), sh.Columns(M + 2), 0)
If Not IsError(X) Then
With sh.Cells(X, M)
.Value = ws.Cells(1, "I").Value
.Interior.ColorIndex = 30
.Font.ColorIndex = 20
End With
Wb.Save ' Save sheet after set data
End If
End If
End If
End Sub