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

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

قام بنشر

السلام عليكم

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

كود


Option Explicit

'				بسم الله الرحمن الرحيم				"

'""""""""""""""""""""""""""""""""""""""""""""""""""""

'	 (دالة ارجاع قيمة (رقم أو نص أو قيمة منطقية	"

'	   (للعمود(العمود_المطلوب MyRang من النطاق

'		LARGE_SMALL   (حسب الترتيب(رقم_الترتيب

'		   (للقيمة في العمود (عمود_القيمة		   "

'""""""""""""""""""""""""""""""""""""""""""""""""""""

'				   الترتيب_المطلوب				   "

' FALSE:LARGE (القيمة الكبرى ذات الترتيب(رقم_الترتيب   "

' TRUE :SMALL (القيمة الصغرى ذات الترتيب(رقم_الترتيب  "

'""""""""""""""""""""""""""""""""""""""""""""""""""""

Function VLO_LARGE_SMALL(MyRang As Range, عمود_القيمة As Integer _

, العمود_المطلوب As Integer, رقم_الترتيب As Integer _

, Optional الترتيب_المطلوب As Boolean = False)


Dim My_VLOOKUP

Dim T As Integer

Dim R As Integer

Dim T_1 As Integer

Dim T_2 As Integer

T = MyRang.Rows.Count

If رقم_الترتيب > T Or رقم_الترتيب = 0 Then VLO_LARGE_SMALL = "": Exit Function

With Application.WorksheetFunction

	For R = 1 To T

		T_1 = .Rank(MyRang.Cells(R, عمود_القيمة), MyRang.Columns(عمود_القيمة), الترتيب_المطلوب)

		If الترتيب_المطلوب = False Then T_2 = .CountIf(Range(MyRang.Cells(1, عمود_القيمة), MyRang.Cells(R, عمود_القيمة)), MyRang.Cells(R, عمود_القيمة).Value)

		If الترتيب_المطلوب = True Then T_2 = .CountIf(Range(MyRang.Cells(R, عمود_القيمة), MyRang.Cells(T, عمود_القيمة)), MyRang.Cells(R, عمود_القيمة).Value)

		If رقم_الترتيب = T_1 + T_2 - 1 Then

			My_VLOOKUP = MyRang.Cells(R, العمود_المطلوب)

			Exit For

		End If

	Next R

End With

VLO_LARGE_SMALL = My_VLOOKUP

End Function

============================

المرفق الجديد المعدل:

_____________________________________________________.rar

============================

المرفق السابق :

_____________________________________________________.rar

============================

قام بنشر

السلام عليكم

اخي الحبيب / نزار------------حفظه الله

ولك امثال دعائك اضعاف مضاعفة

-------اللهم آمين

=======================

اخي الحبيب / يحي------------حفظه الله

الله يوفقك و ييسر لك امورك في دنياك واخرتك

-------اللهم آمين

=======================

اخي الحبيب / ابواسامة------------حفظه الله

لك جزيل شكري و تحياتي

قام بنشر

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

عمل رائع جدا جدا جدا عشيدت سند الى المسلمين زادك الله من علمه

استاذى الفاضل ممكن اعرف اى جزء فى الكود جعل الدالة تقف عند عشرة فقط

لكم جزيل الشكر والاحترام و التقدير

قام بنشر

السلام عليكم

اخي الحبيب / محمدي------------حفظه الله

ولك امثال دعائك اضعاف مضاعفة

-------اللهم آمين

=======================

اخي الحبيب / ياسر سالم------------حفظه الله

الدالة تعطيك النتائج حسب عدد صفوف النطاق المدخل

بامكانك اضافة رقم الترتيب الذي تريده (بشرط لا يكون اكبر من صفوف النطاق)

لتعطيك النتائج

=======================

قام بنشر

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

جزاك الله خير على المجهود

مع اني لا أحبد الأكواد في عمل يمكن عمله بمعادلات مع ذلك اعتقد انهعمل متقن يفيد كثيرين ممن يرغبون بتعلم VBA وافكار برمجية جميلة

عندي ملاحظة عزيزي

في البرنامج لو رقمين متشابهين ممكن يكون سوء فهم للأكبر والأصغر

يعني مثال

a =18

b=18

فيعادلة large

1-a

2-b

ومعادلة small

1-a

2-b

فكيف تكون a هي الأصغر والأكبر

ارجوا تكون الفكرة وصلتك

تحياتي

قام بنشر

السلام عليكم

الاخ / عمر------------حفظه الله

الاخ / تامر------------حفظه الله

بارك الله فيكما شكرا جزيلا

=======================

اخي الفاضل/ عمودي------------حفظه الله

مع اني لا أحبد الأكواد في عمل يمكن عمله بمعادلات

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

ارجوا تكون الفكرة وصلتك

لم توصل اخي الكريم

ارفق ملف يوضح ما اردته من تعليقك

تقبل تحياتي وشكري

قام بنشر

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

مرفق لك ملف يوضح المشكلة في كودك (علشان توصلك الفكرة)

وبالنسبة للمعادلة

شوف بنفسك موقع مايكروسوفت

http://support.microsoft.com/kb/213916

ياريت توضعها بملف مع الأمثلة علشان الجميع يستفيد الجميع

تحياتي

amoudi.rar

قام بنشر (معدل)

السلام عليكم

الاخ الفاضل / عمودي --------------حفظه الله

الآن فهمت ما تقصد بارك الله فيك

وقد قمت بتعديل الكود

اريد رايك في التعديل حتى اقوم بالتعديل في المشاركة الاولى

بالنسبة للرابط تشكر عليه

تقبل تحياتي وشكري

=============================================================

تم اضافة هذا المرفق المعدل في المشاركة الاولى

=============================================================

تم تعديل بواسطه خبور خير
قام بنشر

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

شكرا لتجاوبك مع ملاحظاتي

باالنسبة للملف جربت ومضبوط انشاء الله

تحياتي

قام بنشر

الأخ خبور خير

اطلعت الآن على الكود في الملف بعد التعديل

اعتقد انت بس تحتاج تضيف سطر مثل

اذا كان الترتيب المطلوب فإذن رقم الترتيب = عدد السطور - رقم الترتيب +1

ومعادلة rank بدون متغير الترتيب المطلوب

بعني لو عندي عشر سطور فالترتيب الأول بالأكبر حيكون الترتيب العاشر بالأصغر والترتيب 2 بالأكبر حيكون الترتيب التاسع بالأصغر وهكذا

فأنا اذا عرفت ترتيب الشي بالأكبر فيصبح ترتيبه بالأصغر معروف اذا كان لدي عدد الصفوف

تحياتي

تحياتي

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