منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كيف تلون البيانات المكررة في العمود وتلوين اكبر قيمة في العمود في mshflexgrid1
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
تلوين البينات المكرره في العمود الرابع بالون الاحمر والغير مكرره باللون الاخضر


تلوين اعلى قيمةاو اقل قيمة  بالون الاصفرفي العمود الثالث
السلام عليكم

تفضل اخي حمل المرفقات

لا تنسى الدعاء لنا بارك الله فيك

بالتوفيق
شكرا الاستاذ المحاسب احمد عبد العليم ومن للمرور وجعل الله لك في كل حرفا الف حسنة
لاكن المطلوب هو تلوين الارقام المكررة( كل خلية في عمود الرابعd_value مكرره نريد تلوينها وتلوين تكرارها ) وهي ارقام متغيرة
وليس كلمةrepeater & non repeater
يعني مثلا هناك رقم 500 مكرر ثلاث مرارت يجب تلون الثلاث حقولبالون الاحمر
السلام عليكم ورحمة الله وبركاته


الكود الذي وضعه م/أحمد عبد العليم/ في مثاله -- واضح جداً ويشرح نفسه

فقط استبدل 

CellBackColor

بـ 

CellForeColor



واستبدل الالوان بالالوان التي تناسبك ..

--



لا يوجد متعة للبرمجة بدون أن تحاول فيها وتجرب فيها كثيراً ..

..
اعتقد الفكره غير واضحه لك اخي مع الشكر والاحترام
لتلوين الارقام استبدل الكود التالي في مشروع م/احمد عبد العليم :
كود :
If Trim(.Text) = "repeater" Then
       .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
       .CellBackColor = vbGreen
End If

بالكود :

كود :
If Trim(.Text) = "repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbGreen
End If
(25-11-21, 12:21 AM)Taha Okla كتب : [ -> ]لتلوين الارقام استبدل الكود التالي في مشروع م/احمد عبد العليم :
كود :
If Trim(.Text) = "repeater" Then
       .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
       .CellBackColor = vbGreen
End If
ليس لدى non repeater هذة للمثال

بالكود :

كود :
If Trim(.Text) = "repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbRed
ElseIf Trim(.Text) = "non repeater" Then
   .Col = .Col - 1
   .CellBackColor = vbGreen
End If

ياصديقي العزيز افهمني صحيح نريد البحث عن القيمة في حقول عمود تارتبع وان كانت مكررة نلونها ونلون التكرار تبعها

ياصديقي العزيز افهمني صحيح نريد البحث عن القيمة في حقول العمود الرابع وان كانت مكررة نلونها ونلون التكرار معها
مثال الرقم 500 هو مكرر يتم تلوين حقلة والحقل الاخر الذي به رقم 500
السلام عليكم

بارك الله فيك اخي طه وزادك من علمه وفضله


اخي Mhqom

استبدل الكود بهذا الكود

PHP كود :
Public Sub Loadx()
Dim IXCol As Integer
Dim txt 
As String
        Dim vMe
        Dim vMin
        Dim vMax

 
If rs.State adStateOpen Then rs.Close
rs
.Open "select * from T_DATE"ConadOpenStaticadLockPessimistic
Set mshflexgrid1
.DataSource rs

With Me
.mshflexgrid1
 vMin 
Val(.TextMatrix(13))
 
vMax Val(.TextMatrix(13))

For 
XCol 3 To .Cols 1
For 1 To .Rows 1

.Row I
.Col = .Cols 1
If Trim(.Text) = "repeater" Then
.Row I
.Col XCol
.CellBackColor vbRed
ElseIf Trim(.Text) = "non repeater" Then
.Row I
.Col XCol
.CellBackColor vbGreen
End 
If

vMe Val(.TextMatrix(I3))
 
                   If vMe vMin Then
                        vMin 
vMe
                        
                    End 
If
 
                   If vMe vMax Then
                        vMax 
vMe
                        
                    End 
If
 
                  
           
            Next I
            Next XCol
           
            For I 
1 To .Rows 1
           
                        
.Row I
                        
.Col 3
             
If Val(.TextMatrix(I3)) = vMin Then

                        
.CellBackColor vbYellow
                        End 
If
 
                  If Val(.TextMatrix(I3)) = vMax Then
                        
.CellBackColor vbYellow
                        End 
If



Next
End With


End Sub 
بالتوفيق
(25-11-21, 11:25 AM)ahmedabdelaliem كتب : [ -> ]السلام عليكم

بارك الله فيك اخي طه وزادك من علمه وفضله


اخي Mhqom

استبدل الكود بهذا الكود

PHP كود :
Public Sub Loadx()
Dim IXCol As Integer
Dim txt 
As String
        Dim vMe
        Dim vMin
        Dim vMax

 
If rs.State adStateOpen Then rs.Close
rs
.Open "select * from T_DATE"ConadOpenStaticadLockPessimistic
Set mshflexgrid1
.DataSource rs

With Me
.mshflexgrid1
 vMin 
Val(.TextMatrix(13))
 
vMax Val(.TextMatrix(13))

For 
XCol 3 To .Cols 1
For 1 To .Rows 1

.Row I
.Col = .Cols 1
If Trim(.Text) = "repeater" Then
.Row I
.Col XCol
.CellBackColor vbRed
ElseIf Trim(.Text) = "non repeater" Then
.Row I
.Col XCol
.CellBackColor vbGreen
End 
If

vMe Val(.TextMatrix(I3))
 
                   If vMe vMin Then
                        vMin 
vMe
                        
                    End 
If
 
                   If vMe vMax Then
                        vMax 
vMe
                        
                    End 
If
 
                  
           
            Next I
            Next XCol
           
            For I 
1 To .Rows 1
           
                        
.Row I
                        
.Col 3
             
If Val(.TextMatrix(I3)) = vMin Then

                        
.CellBackColor vbYellow
                        End 
If
 
                  If Val(.TextMatrix(I3)) = vMax Then
                        
.CellBackColor vbYellow
                        End 
If



Next
End With


End Sub 
بالتوفيق

السلام عليكم افهموني رجأ انا ما عندي كلمة تكرار ومن غير تكرار بدي الرقم المكرر هو الي تعتمد علية بالبرمجة لانة متغير وهي مثال صورة مرفقة للنتائج الاخيرة
وعليكم السلام

السؤال الواضح هو نصف الاجابة ..
لو كان سؤالك في البداية صحيح لما استغرق معك كل هذا الوقت حتى توضح طلبك ونعرف المقصود منه.
ع الاقل لا ترفق مثال غير حقيقي بل مثال مطابق لمشكلتك .. 

من المفروض أن يكون سؤالك كيف يمكن أن أعرف الأرقام المكررة في الحقل X  ثم ألونها ..

على كلٍ - استخدم هذا الكود(كود م/ أحمد عبد العليم/ بعد تعديل بسيط) وبإذن الله تجد ضالتك فيه ..

كود :
Public Sub Loadx()
    Dim Rs2 As New ADODB.Recordset
    Dim I, XCol As Integer
    Dim txt As String
    Dim vMe
    Dim vMin
    Dim vMax
 
    If Rs.State = adStateOpen Then Rs.Close
    Rs.Open "select * from T_DATE", Con, adOpenStatic, adLockPessimistic
    
    Set mshflexgrid1.DataSource = Rs

    With Me.mshflexgrid1
        vMin = Val(.TextMatrix(1, 3))
        vMax = Val(.TextMatrix(1, 3))

        '====================================
        '====================================
        For XCol = 0 To .Cols - 1
            For I = 1 To .Rows - 1

                .Row = I
                .Col = .Cols - 1
                
                If Rs2.State = adStateOpen Then Rs2.Close
                Rs2.Open "select * from T_DATE Where d_value =" & Val(.TextMatrix(I, 3)), Con, adOpenStatic, adLockPessimistic
                
                If Rs2.RecordCount > 1 Then
              '  If Trim(.Text) = "repeater" Then
                    .Row = I
                    .Col = XCol
                    .CellBackColor = &HC0C0FF
                Else 'If Trim(.Text) = "non repeater" Then
                    .Row = I
                    .Col = XCol
                    .CellBackColor = &HC0FFC0
                End If

                vMe = Val(.TextMatrix(I, 3))

                If vMe < vMin Then
                    vMin = vMe
                        
                End If

                If vMe > vMax Then
                    vMax = vMe
                        
                End If
           
            Next I
        Next XCol
           
        For XCol = 0 To .Cols - 1
            For I = 1 To .Rows - 1
           
                .Row = I
                .Col = XCol

                If Val(.TextMatrix(I, 3)) = vMin Then

                    .CellBackColor = &HFFFFC0
                End If

                If Val(.TextMatrix(I, 3)) = vMax Then
                    .CellBackColor = &HFFFF00
                End If

            Next I
        Next XCol

    End With

End Sub
الصفحات : 1 2