زيادة في اثراء الموضوع يمكن وضع هذه المعادلة في L5 والسحب نزولاً
=IF(H5<>"",FLOOR(K5,0.5),"")
و المعادلة الثانية في M5 (كي تصبح كل خلية مستقلة بمعادلتها)
=IF(H5="","",(K5-IF(H5<>"",FLOOR(K5,0.5),""))*8)
استبدل الكود بالتالي: (اضافة بسيطة على السابق)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet
Set ws = Sheets("æÑÞÉ1 (3)")
If Not Intersect(Target, Range("b2:m3")) Is Nothing Then
Application.EnableEvents = False
Application.ScreenUpdating = False
On Error Resume Next
Range("b2:m3").Cells.FormatConditions.Delete
Range("b2:m3").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(OR($A2=""ÇáÓÈÊ"",$A2=""ÇáÇÍÏ""),COUNTIF($B2:$M2,B2)>1,ISNUMBER(B2))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
[B2].Select
Else
Application.EnableEvents = True
Application.ScreenUpdating = True
End If
End Sub
السلام عليم
هذا الملف يعمل بالكود
مجرد ما تغير اي خلية في النطاق المطلوب سوف يعمل التنسيق الشرطي تلقائياً
يمكنك تغيير النطاق من داخل الكود
(كبسة يمين على اسم الصفحة ثم view code)
تنسيق شرطي salim.rar
انسخ هذا للكود في حدث الصفحة
Sub cond_for()
Range("B2:M3").Select
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=AND(OR($A2=""السبت"",$A2=""الاحد""),COUNTIF($B2:$M2,B2)>1,ISNUMBER(B2))"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
End With
End Sub
نفس الموضوع لكن بكود اقصر
Sub othermethod()
Dim taba As Range, tabb As Range
Set ws = Sheet1
lra = ws.Cells(Rows.Count, 1).End(xlUp).Row
lrb = ws.Cells(Rows.Count, 2).End(xlUp).Row
Set taba = Range("a2:a" & lra): Set tabb = Range("b2:b" & lrb)
Set ct = Application.WorksheetFunction
i = 1
For Each x In taba
If ct.CountIf(tabb, x) >= 1 Then
Cells(i + 1, 4) = x: i = i + 1
End If
Next
End Sub
اخي و صدقي مختار
في هذه الحالة يجب ان تكون المعادلة مع صفيف متحرك (اعني الخلايا ليست مطلقة أو النطاق ليس مطلقاً)
بل نسبي اما الصفوف او الاعمدة (حسب الحاجة)
حذ هذه المعادلة مثلاً وطبقها عندك
=IFERROR(INDEX(A$1:A$9,SMALL(IF(A$1:A$9<>"",ROW(A$1:A$9)-ROW(A$1)+1,""),ROWS($H$8:H8))),"")