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

اختيار اسم المقاطعة في حالة تكرار الرقم


tahar

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

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

لا داعى اضغط الملف طالما مساحته صغيره

 

ray.xlsx

رابط هذا التعليق
شارك

السلام عليكم 

اكتب الرقم في العمود F

الكود

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim ws As Worksheet
    Dim districtNumber As String
    Dim count As Integer
    Dim districtList As String
    Dim cell As Range
    Dim districtArray() As String
    Dim i As Integer
    Dim selectedDistrict As String
    
    Set ws = ThisWorkbook.Sheets("Feuil2")
    
    If Not Intersect(Target, ws.Range("F5:F" & ws.Cells(ws.Rows.count, "F").End(xlUp).Row)) Is Nothing Then
        districtNumber = CStr(Target.Value)
        
        If districtNumber <> "" Then
            count = Application.WorksheetFunction.CountIf(ws.Range("A2:A500"), districtNumber)
            
            If count > 1 Then
                districtList = ""
                For Each cell In ws.Range("A2:A" & ws.Cells(ws.Rows.count, "A").End(xlUp).Row)
                    If cell.Value = districtNumber Then
                        If districtList = "" Then
                            districtList = ws.Cells(cell.Row, "B").Value
                        Else
                            districtList = districtList & "," & ws.Cells(cell.Row, "B").Value
                        End If
                    End If
                Next cell
                
                districtArray = Split(districtList, ",")
                
                With UserForm1.ListBox1
                    .Clear
                    For i = LBound(districtArray) To UBound(districtArray)
                        .AddItem districtArray(i)
                    Next i
                End With
                
                UserForm1.Show
                
                If UserForm1.ListBox1.ListIndex <> -1 Then
                    selectedDistrict = UserForm1.ListBox1.Value
                Else
                    selectedDistrict = ""
                End If
                
                Target.Offset(0, 1).Value = selectedDistrict
            Else
                For Each cell In ws.Range("A2:A" & ws.Cells(ws.Rows.count, "A").End(xlUp).Row)
                    If cell.Value = districtNumber Then
                        Target.Offset(0, 1).Value = ws.Cells(cell.Row, "B").Value
                        Exit For
                    End If
                Next cell
            End If
        End If
    End If
End Sub

 

الملف

اسم المقاطعة.xlsb

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

وعليكم السلام 

دالة recherchv  لا اجيدها  واعتقد انها فرنسية ولكن قمت بحل اخر  وان لم  يكن مناسبا لك قم بفتح موضوع جديد واطلب فيه دالة recherchv  وستجد من الخبراء من يقوم بذلك

تحياتي

اسم المقاطعة.xlsb

  • Like 1
رابط هذا التعليق
شارك

السلام عليكم

جرب المرفق  الاختيار من القائمة بالضغط مرتين على العتصر المختار واذا كان الرقم غير موجود تاتى رسالة بذلك 

بالتوفيق واي ملاحظات لا حرج في ذلك

test.xls

 

 

 

تم تعديل بواسطه عبدالله بشير عبدالله
  • Like 2
رابط هذا التعليق
شارك

ممكن شرح الكود  باللون الاخضر 

هل يمكن  اختيار من الليست بوكس بالضغط على انتري  واختيار بالفارة يعني تضيف خاصية اختيار بالضغط على انتري نزعها بايشاب   esc

عند مسح الخلية من رقم يجب ان لا تبقة المعلومات في الخلايا المجاورة

الكود في الارقام المكررة لا يجلب المتغيرات جرب الرقم 99

وشكرا

 

تم تعديل بواسطه tahar
رابط هذا التعليق
شارك

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   1 عضو متواجد الان

×
×
  • اضف...

Important Information