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

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة


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

السادة الأفاضل

الرجاء المساعدة

المطلوب بالمرفق

وشكرا لكل أعضاء هذا المنتدى الرائع

 

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

الرجاء المساعدة للضرورة القصوى إخوانى الأعزاء أعضاء وأساتذة هذا المنتدى العظيم

لإستكمال عمل هام جدا

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

السلام عليكم

اخى الفاضل المهندس ياسر اليك حل متواضع منى بالمعادلات

المعادله الاولى : استخراج الاسماء بدون تكرار(صفيف) ctrl+shift+enter

=IFERROR(INDEX($A$1:$A$1000;MATCH(0;COUNTIF($D$2:D2;$A$1:$A$1000&"");0));"")

المعادله الثانيه  : البحث بحرف او اسم جمله (صفيف) ctrl+shift+enter

=IFERROR(INDEX($D$3:$D$100;MATCH(SMALL(IF(ISNUMBER(SEARCH($C$2;'Sales Report'!$D$3:$D$100;1));ROW($D$3:$D$100);"");ROW($A1));ROW($D$3:$D$100);0));"")

المعادله الثالثه : قائمه منسدله مطاطيه بنتائج البحث

=OFFSET($E$3;;;COUNTA($E$3:$E$25)-COUNTBLANK($E$3:$E$25))

تقبل تحياتى :fff:

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

جزاك الله كل الخير أخى وأستاذى القدير / محمد الريفى

معادلات رائعة جدا جدا جدا وشرح ممتاذ

أطلب من حضرتك بالنسبة للمعادلة الثالثة الخاصة بالقائمه منسدله مطاطيه بنتائج البحث

أريد تطبيقها على شيت acheivement لأنها لا تعمل وليست بنفس الشيت لأنها موجود فى العمل الذى أريدة بنفس الطريقة المرفقة

ولسيادتكم خالص الشكر والتقدير

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

السلام عليكم

اتفضل يابشمهندس تم تطبيق المعادله

وسبب المشكله انك تستعمل اصدار اقل من 2010

تحياتى

 

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

أستاذى القدير / محمد الريفى

أنا أستعمل إصدار 2010 بالفعل

ولكن أنا لى إستفسار

هل يوجد إمكانية لعمل المعادلة الموجودة داخل القائمة المنسدلة لتقوم بفلترة الأسماء الموجودة بشيت sales Report من بداية A1 إلى A105533 دون تكرار ( فى معادلة واحدة )

وأيضا القائمة تكون فى شيت Achevement  فى الخانة B4

ولك منى خالص الشكر والتقدير على تعب حضرتك معايا

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

اخى العزيز

قصدت فى اختصار مدى المعادله لانها معادلة صفيف . وحتى لاتسبب بطىء فى المعادلات وان اردت فعلا تغيير المدى فانصحك بتحديد المدى الذى تريده

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

 

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

السلام عليكم

هذا حل بالاكواد

كود ملئ اليست دون تكرار

Sub RabieCh()
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sales Report")
    Dim lrw As Long: lrw = ws.Cells(Rows.Count, 1).End(xlUp).Row
    Dim keyArray(): keyArray = ws.Range("A3:A" & lrw).Value
    Set sDic = CreateObject("Scripting.Dictionary")
    Dim i As Long
    
            For i = LBound(keyArray) To UBound(keyArray)
                If Not IsEmpty(keyArray(i, 1)) Then sDic(keyArray(i, 1)) = ""
            Next i
            
        If IsArray(keyArray) Then
            With Sheet2.ComboBox1
                .List = sDic.keys:
                .ListRows = 20
                .MatchEntry = fmMatchEntryNone
                .TextAlign = fmTextAlignRight
            End With
        choix1 = sDic.keys
        End If
End Sub

كود البحث داخل اليست (فلترة)

  If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
        Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare)
        Me.ComboBox1.DropDown
  End If

لم افهم اين تريد انتائج ان شات وضح الامر لاعدل في الاكواد

تحياتي للجميع

 

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

اخى العزيز

قصدت فى اختصار مدى المعادله لانها معادلة صفيف . وحتى لاتسبب بطىء فى المعادلات وان اردت فعلا تغيير المدى فانصحك بتحديد المدى الذى تريده

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

اخى الحبيب محمد الريفى الغالى

أنا عارف إنى تعبتك معايا

بس أنا بحب أفهم الحاجه وأستفسر لكى أتعلم مش نسخ معادلة وخلاص

هاتعبك معايا

أنظر إلى المرفق

وأريد معرفة القائمة الموجودة بشيت Sales Report بها أسماء بالعربى لماذا لا تظهر بالقائمة

وأريد كما بالمرفق المعادلة تنفذ المطلوب فى خطوة واحدة كما هو موضح بالمرفق بدون تكرار

أسف إنى بتعبك مرة مرة ثانية

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

السلام عليكم

هذا حل بالاكواد

كود ملئ اليست دون تكرار

Sub RabieCh()
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sales Report")
    Dim lrw As Long: lrw = ws.Cells(Rows.Count, 1).End(xlUp).Row
    Dim keyArray(): keyArray = ws.Range("A3:A" & lrw).Value
    Set sDic = CreateObject("Scripting.Dictionary")
    Dim i As Long
    
            For i = LBound(keyArray) To UBound(keyArray)
                If Not IsEmpty(keyArray(i, 1)) Then sDic(keyArray(i, 1)) = ""
            Next i
            
        If IsArray(keyArray) Then
            With Sheet2.ComboBox1
                .List = sDic.keys:
                .ListRows = 20
                .MatchEntry = fmMatchEntryNone
                .TextAlign = fmTextAlignRight
            End With
        choix1 = sDic.keys
        End If
End Sub

كود البحث داخل اليست (فلترة)

  If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
        Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare)
        Me.ComboBox1.DropDown
  End If

لم افهم اين تريد انتائج ان شات وضح الامر لاعدل في الاكواد

تحياتي للجميع

الأستاذ والمعلم القدير / شوقى ربيع

يسعدنى ويشرفنى مرورك الجليل على موضوع لى

ولكن عند فتح الملف يوجد رسالة خطأ تظهر لدى

مرفق صور رسالة الخطأ

وهل أيضا سيظهر بالقائمة الأسماء التى بالعربى أم لا

Desktop.rar

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

اخى الحبيب ا/ ياسر

مفيش تعب ولاحاجه

اسحب المعادله للاسفل( عدم التكرار) واخبرنى بالنتيجه

مع ملاحظة بطىء المعالجة نظرا لكبر المدى

بالفعل أخى الحبيب / محمد الريفى

بس سحب المعادلة بطيء جدا جدا

مفيش معادلة واحدة تقوم بهذا العمل داخل معادلة Data Validation بدون التكرار كما فى المرفق بالمشاركة رقم 14

ولا صعب

معلش بتعبك بس أنا بتعلم من حضرتك

مرفق صورة

post-44105-0-43415900-1427052995_thumb.p

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

السلام عليكم

تم التغلب على بطىء الحساب

والمطلوب الثانى مازلت اعمل عليه

او يساعدك احد الاساتذه ان لم اجد الوقت

تحياتى

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

السلام عليكم

المشكلة في تعارض الاصدار بين الاوفس ال\ي لديك وال\ي لدي

ما بخصوص سؤالك اجل تضهر الاسماء المكتوبة بالعربي

على العموم قم بادراج كمبوبوكس في الشيت الخاص بك من مطور و يجب ان يكون اسمها ComboBox1 ان لم يكن غير التسمية في الاكواد

ثانيا انشء نوديل وانسخ فيه هذه الاكواد

Public sDic As Object
Public choix1()

Sub RabieCh()
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sales Report")
    Dim lrw As Long: lrw = ws.Cells(Rows.Count, 1).End(xlUp).Row
    Dim keyArray(): keyArray = ws.Range("A3:A" & lrw).Value
    Set sDic = CreateObject("Scripting.Dictionary")
    Dim i As Long
    
            For i = LBound(keyArray) To UBound(keyArray)
                If Not IsEmpty(keyArray(i, 1)) Then sDic(keyArray(i, 1)) = ""
            Next i
            
        If IsArray(keyArray) Then
            With Sheet2.ComboBox1
                .List = sDic.keys:
                .ListRows = 20
                .MatchEntry = fmMatchEntryNone
                .TextAlign = fmTextAlignRight
            End With
        choix1 = sDic.keys
        End If
End Sub

وفي حدث Change الخاص بالكمبوبوكس انسخ الكود الاتي

Private Sub ComboBox1_Change()
  If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
        Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare)
        Me.ComboBox1.DropDown
  End If
End Sub

ان شاء الله سيعمل لديك الملف عادي

 

تحياتي

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

السلام عليكم

المشكلة في تعارض الاصدار بين الاوفس ال\ي لديك وال\ي لدي

ما بخصوص سؤالك اجل تضهر الاسماء المكتوبة بالعربي

على العموم قم بادراج كمبوبوكس في الشيت الخاص بك من مطور و يجب ان يكون اسمها ComboBox1 ان لم يكن غير التسمية في الاكواد

ثانيا انشء نوديل وانسخ فيه هذه الاكواد

Public sDic As Object
Public choix1()

Sub RabieCh()
    Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sales Report")
    Dim lrw As Long: lrw = ws.Cells(Rows.Count, 1).End(xlUp).Row
    Dim keyArray(): keyArray = ws.Range("A3:A" & lrw).Value
    Set sDic = CreateObject("Scripting.Dictionary")
    Dim i As Long
    
            For i = LBound(keyArray) To UBound(keyArray)
                If Not IsEmpty(keyArray(i, 1)) Then sDic(keyArray(i, 1)) = ""
            Next i
            
        If IsArray(keyArray) Then
            With Sheet2.ComboBox1
                .List = sDic.keys:
                .ListRows = 20
                .MatchEntry = fmMatchEntryNone
                .TextAlign = fmTextAlignRight
            End With
        choix1 = sDic.keys
        End If
End Sub

وفي حدث Change الخاص بالكمبوبوكس انسخ الكود الاتي

Private Sub ComboBox1_Change()
  If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, choix1, 0)) Then
        Me.ComboBox1.List = Filter(choix1, Me.ComboBox1.Text, True, vbTextCompare)
        Me.ComboBox1.DropDown
  End If
End Sub

ان شاء الله سيعمل لديك الملف عادي

 

تحياتي

اخى وأستاذى الفاضل / شوقى ربيع

قبل كل شيء مجرد مرور حضرتك وإهتمامك بموضوع لى فهو شرف لى

الرجاء من حضرتك تطبيق هذه الأكواد على المشاركة رقم  1 وإرفاق المثال لتعم الفائدة على الجميع  وهذه لأنىى ليس لدى الخبرة الكافية فى عمل الخطوات التى تم ذكرها بالمشاركة رقم 19

وهاتعب حضرتك لو تم شرح كيفية إدراج كمبوبوكس وتسميته وإدراج الكود في حدث Change الخاص بالكمبوبوكس

لأنىى أعرف كيفية إدراج كمبوبوكس جيدا ولكن لا أعرف كيفية تسميته وإدراج الكود في حدث Change الخاص بالكمبوبوكس

 

ولا أنكر وأنسى مجهود أستاذى ومعلمى القدير / محمد الريفى على تعبه معايا فهو بالفعل من الأساتذة التى تبهرنى أعماله جزاه الله كل الخير وله منى خالص الشكر والتقدير

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

سؤال لجميع أعضاء المنتدى الأفاضل

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

الرجاء الإفادة ليستفاد الجميع

الموضوع هااااااااااااااااااااام جدا جدا

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

سلمت يداك أخى الفاضل / DBA.Oracle

فكرة بالفعل رائعة

ولكنى أريدها كما بالمرفق التالى

يوجد شرح للمطلوب داخل المرفق وصورة أيضا

الرجاء الإفادة لأن الطرق المقترحة من أساتذتى لا تلبى طلبى لأن الملف الذى سيتم العمل عليه بها داتا كثيرة جدا جدا تحتاج إلى هذه الطريقة وبنفس المطلوب

قائمة منسدلة بدون تكرار مع إمكانية البحث داخل القائمة.rar

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

سلمت يداك أخى الفاضل / DBA.Oracle

فكرة بالفعل رائعة

ولكنى أريدها كما بالمرفق التالى

يوجد شرح للمطلوب داخل المرفق وصورة أيضا

الرجاء الإفادة لأن الطرق المقترحة من أساتذتى لا تلبى طلبى لأن الملف الذى سيتم العمل عليه بها داتا كثيرة جدا جدا تحتاج إلى هذه الطريقة وبنفس المطلوب

 

 

 

 

هل الموضوع صعب لهذه الدرجة أم مستحيل لحل هذا الطلب بخطوة واحدة كما بالمرفق بالمشاركة رقم 23

الرجاء الإفادة ولكم خالص الشكر والتقدير

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

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