تم انشاء استدعاء لدالة للتحديث التلقائي عند فتح الشيت Search في ThisWorkbook كالآتي :-
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
If Sh.Name = "SEARCH" Then
Call UpdateSearchSheet
With ThisWorkbook.Sheets("SEARCH")
.Range("B5").Select
End With
End If
End Sub
وطبعاً دالة التحديث التلقائي :-
Sub UpdateSearchSheet()
Dim wsSearch As Worksheet
Dim wsData As Worksheet
Dim wsPensions As Worksheet
Dim lastRowData As Long
Dim lastRowPensions As Long
Dim lastRowSearch As Long
Set wsSearch = ThisWorkbook.Sheets("SEARCH")
Set wsData = ThisWorkbook.Sheets("DATA")
Set wsPensions = ThisWorkbook.Sheets("معاشات")
wsSearch.Range("A10:M1000").ClearContents
lastRowData = wsData.Cells(wsData.Rows.Count, "A").End(xlUp).Row
If lastRowData > 9 Then
wsData.Range("A10:M" & lastRowData).Copy
wsSearch.Range("A10").PasteSpecial xlPasteValues
End If
lastRowSearch = wsSearch.Cells(wsSearch.Rows.Count, "A").End(xlUp).Row
If lastRowSearch < 10 Then lastRowSearch = 9
lastRowPensions = wsPensions.Cells(wsPensions.Rows.Count, "A").End(xlUp).Row
If lastRowPensions > 9 Then
wsPensions.Range("A10:M" & lastRowPensions).Copy
wsSearch.Range("A" & lastRowSearch + 1).PasteSpecial xlPasteValues
End If
Application.CutCopyMode = False
End Sub
وبشكل اختياري ، زر تحديث يدوي :-
Sub RefreshSearchData()
Call UpdateSearchSheet
With ThisWorkbook.Sheets("SEARCH")
.Range("B5").Select
End With
MsgBox "تم تحديث البيانات بنجاح", vbInformation
End Sub
توحيد البحث في شيت واحد.xlsb