وعليكم السلام
هذه محاولة بالمعادلات الى ان يتم تدخ الأساتذة بعمل كود لك
ولكن لابد من فتح جميع الملفات فى وقت واحد حتى يتم نقل البيانات بكل دقة
جميع الملفات بملف واحد باستخدام المعادلات في اكسل.rar
هذا الكود الستاذ ياسر خليل يفى بالغرض
Sub Test()
Dim ws As Worksheet
Dim sh As Worksheet
Dim lr As Long
Set ws = Sheets("DATA")
Set sh = Sheets("AS")
Application.ScreenUpdating = False
sh.Range("B3:U1026").ClearContents
lr = sh.Cells(Rows.Count, 1).End(xlUp).Row + 2
ws.Range("B7:U1026").SpecialCells(xlCellTypeVisible).Copy
sh.Range("B" & lr).PasteSpecial xlPasteValues
On Error Resume Next
sh.Columns(5).Replace 0, ""
sh.Columns(5).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub
تفضل أخى الكريم تمت الإجابة من قبل الأستاذ ياسر خليل
Sub Test()
Dim ws As Worksheet
Dim sh As Worksheet
Dim lr As Long
Set ws = Sheets("DATA")
Set sh = Sheets("AS")
Application.ScreenUpdating = False
sh.Range("B7:U406").ClearContents
lr = sh.Cells(Rows.Count, 4).End(xlUp).Row + 1
ws.Range("B7:U1026").SpecialCells(xlCellTypeVisible).Copy
sh.Range("B" & lr).PasteSpecial xlPasteValues
On Error Resume Next
sh.Columns(2).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
On Error GoTo 0
Application.CutCopyMode = False
Application.ScreenUpdating = False
End Sub
بأن تضع هذا الكود فى حدث الورقة المراد العمل عليها
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For Each cel In [A1:A1000]
If Application.WorksheetFunction.CountIf(Range("A1:A1000"), cel) > 1 Then
بمعنى العمل على العمةد الأول وهو العمود A الذى به البيانات
cel.Interior.ColorIndex = 4
4 هو رقم لون التظليل
Else
cel.Interior.ColorIndex = 0
End If
Next
End Sub
لأنها أول خلية مكتوب فيها المعادلة من العمود الثانى وهو B
وبالتالى فقمت بتثبيت هذه الخلية B1
ولم أسحب المعادلة يسارا مباشرة لأنى أصبحت أعدل فى كل خلية من خلايا الصف بحيث لا يتغير هذا الجزء من المعادلة مع تغيير الأعمدة ($B$1:B1)
فإذا مثلا
سحبت المعادلة أفقيا مباشرة فسوف يتغير هذا الجزء بتغير العمود المسحوب فيه المعادلة
بمعنى لو سحبت الى العمود D فيصبح هذا الجزء كالتالى
($B$1:D1)
ولكنى أريده يتغير بتغير B فقط
أى تكون الخلية الأولى ($B$1:B1)
والخلية الثانية ($B$1:B2) وهكذا الى اليوم ....31
بارك الله فيكم اتمنى ان تكون وضحت
أو ضع هذا الكود فى موديول ليعمل الوقت فى الخلية C13 كما تريد
Sub Date_Time()
On Error Resume Next
1 DoEvents
N = Now
Range("c13") = Format(N, "[$-F400]h:mm:ss AM/PM")
T = T + 1
For r = 1 To 10000000: Next r
GoTo 1
End Sub