تفضل أخى الكريم تمت الإجابة من قبل الأستاذ ياسر خليل
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
لو التوقيت الذى تريده فى خلية واحدة
يمكنك استعمال ووضع معادلة الأستاذ سليم فى الخلية C13
=TEXT(TODAY(),"d/m/yyy")&" "&TEXT(NOW(),"hh:mm:ss")
ولكم جزيل الشكر
ضع هذا الكود فى حدث الورقة فى ملفك
Private Sub Worksheet_Change(ByVal Target As Range)
n = Now
If Target.Column = 2 Then
If Target = "" Then
Cells(Target.Row, Target.Column + 1) = ""
Cells(Target.Row, Target.Column + 2) = ""
Exit Sub
ElseIf Target <> "" Then
Cells(Target.Row, Target.Column + 1) = Date
Cells(Target.Row, Target.Column + 2) = Time
End If
End If
End Sub