اذهب الي المحتوي
أوفيسنا

تلوين رقمين داخل شبكة أرقام


إذهب إلى أفضل إجابة Solved by محمد هشام.,

الردود الموصى بها

  • أفضل إجابة

وعليكم السلام ورحمة الله تعالى وبركاته 

تفضل جرب اخي 

Sub FindCouleur()

Dim j(1 To 2) As String, F As Variant
Dim a As Range, R As Range, T&, Cpt&, lCol&, lrow&

Dim WS As Worksheet: Set WS = Worksheets("0")

Application.ScreenUpdating = False
lrow = WS.Cells.Find(What:="*", LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
lCol = WS.Cells(1, Columns.Count).End(xlToLeft).Column

j(1) = [Al14]: j(2) = [Al15]


    Set a = WS. _
        Range("A1", WS.Cells(lrow, lCol))
                    F = Array(j(1), j(2))

With a
.Interior.ColorIndex = xlNone
    For Cpt = LBound(F) To UBound(F)
        Set R = .Cells(.Cells.Count)
            For T = 1 To WorksheetFunction.CountIf(a, F(Cpt))
                    Set R = .Cells.Find(What:=F(Cpt), LookIn:=xlValues, LookAt:=xlWhole, _
                    After:=R, MatchCase:=False)
                    R.Interior.Color = vbYellow
                    
            Next T
        Next
  End With
Application.ScreenUpdating = True

End Sub

 

 

أرقام.xlsm

تم تعديل بواسطه محمد هشام.
  • Like 3
  • Thanks 1
رابط هذا التعليق
شارك

حسناً

يجب أخذ في عين الإعتبار وجود نفس القيمة مكررة في أكثر من خلية

مع أني لا أعتقد ذلك بحسب المعادلة التي وضعها السيد مشعل

لكن بكل الأحوال ممكن تجربة هذا الكود

Sub test()
    Dim i&
    Dim x As String
    Dim r As Range
    Application.ScreenUpdating = False
    Range("A1:AI35").Interior.Color = xlNone
    For i = 14 To 15
        With Range("A1:AI35")
            Set r = .Cells.Find(Range("AL" & i), , , 1)
            x = r.Address
            Do
                r.Interior.Color = vbRed
                Set r = .Cells.FindNext(r)
            Loop Until r.Address = x
        End With
    Next
    Application.ScreenUpdating = True
End Sub
'وأيضاً لتلوين كل رقم بلون مختلف
Sub test2()
    Dim i&
    Dim x As String
    Dim r As Range
    Dim f As Boolean
    Application.ScreenUpdating = False
    Range("A1:AI35").Interior.Color = xlNone
    For i = 14 To 15
        With Range("A1:AI35")
            Set r = .Cells.Find(Range("AL" & i), , , 1)
            x = r.Address
            Do
                r.Interior.Color = IIf(f, vbRed, vbYellow)
                Set r = .Cells.FindNext(r)
            Loop Until r.Address = x
        End With
        f = True
    Next
    Application.ScreenUpdating = True
End Sub

 

تم تعديل بواسطه محي الدين ابو البشر
  • Like 3
  • Thanks 1
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information