PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : لیست وابسته با استفاده از محدوه ی اعداد



h7h
2016/11/25, 16:24
سلام وقت بخیر.یه سوال داشتم .توی یک ستون میخوام محدوده ای از اعداد رو وارد کنم با این شرط که اگه ستون قبلی مقدار a باشد این ستون مقادیر 9 تا 9.8 و اگر b باشد مقادیر 7.5 تا 9.4 و c باشه مقادیر 5 تا 6.5 رو بگیره.چطور با استفاده از دیتاولیدیشن اینکار رو انجام بدم.نکته ی مهم اینه که در ستون مثلا c مقادیری که قرار میگیره برحسب a یا b یا c محدوه ای از اعداد هست نه مقادیر ثابت یعنی بین اعداد xوy

rahi_feri
2016/11/25, 16:52
سلام
در سوالی که مطرح کردید به لیست وابسته اشاره نشده!
این نمونه رو ساختم ببینید همین مد نظر شماست!
در ستون a حرف رو وارد و در ستون b مقدار در غیر اون بازه رو وارد کنید تا نتیجه رو ببینید!

h7h
2016/11/25, 21:12
سلام و سپاس از پاسخگویی.درست عمل کرد فقط یک مشکل داره اگه بطور مثال در سلول b1 مقداری برحسب a1 که برابر a در نظر گرفته باشیم مثلا 9.5 و حالا مقدار a1 به b تغییر دادیم همون مقدار 9.5 که از قبل درون سلول b1 بوده رو خارج از شرط ما هم هست قبول میکنه.میخوام طوری عمل کنه که با تغییر مقدار سلول a1 مقدار سلول b1 پاک بشه.

rahi_feri
2016/11/25, 23:15
سلام
چک کنید!...
احتمال زیاد نواقصی هم داره که با کار کردن باهاش پیدا خواهد شد! البته اگر در چارچوب اضافه کردن داده و تغییر اون استفاده بشه موردی پیش نمیاد!

h7h
2016/11/25, 23:47
امکانش هست توضیحی راجع به کد vb بکار رفته در فایل بدین؟سپاس فراوان از پاسخگویی

rahi_feri
2016/11/26, 18:59
سلام
لینک میدم اگر متوجه نشدید اطلاع بدید (موارد مهم از کد) !
----------------
Worksheet.Change Event (Excel)
(https://msdn.microsoft.com/en-us/library/office/ff839775.aspx)target : اون سلول و ناحیه انتخاب رو نشون میده (همون سلول فعاله) مثال :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox Target.Address
End Sub

در صورت انتخاب محدوده و تغییر (SelectionChange) آدرس target انتخابی پیغام داده میشه!
----------------
Application.Intersect Method (Excel) (https://msdn.microsoft.com/en-us/library/office/ff835030.aspx)
http://www.ozgrid.com/VBA/vba-intersect.htm
(http://www.ozgrid.com/VBA/vba-intersect.htm)intersect : تابعی! در VBA که به معنی اشتراکه و همین عملکرد رو هم داره مثلا :

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
MsgBox "Hello"
End If
End Sub
یعنی اگر عدم اشتراک دامنه A1:A10 و سلول یا ناحیه انتخابی (target) وجود نداشت (به تعبیر بهتر یعنی target در محدوده A1:A10 باشه) آن گاه پیام Hello بده!
که در این تصویر تفاوت اتحاد و اشتراک رو خوب نشون داده :
Union and Intersect Operator in Excel - EASY Excel Tutorial
(http://www.excel-easy.com/examples/union-intersect.html)----------------
EnableEvents : جلوگیری از ایجاد حلقه! (اجرا رویداد ها (کدها) رو فعال و غیرفعال می کنه / اجازه میده که اقدام مورد نظری که می خواهیم اجرا بشه! و از اجرا مابقی اونها جلوگیری میکنه)
Application.EnableEvents Property (Excel) (https://msdn.microsoft.com/en-us/library/office/ff821508.aspx)
EnableEvents Application Property VBA - Explained with Examples (http://analysistabs.com/vba-code/application/p/enableevents/)

این مثال خوبیه براش : 13. VBA Tips - Enable / Disable Events | ExcelExperts.com (http://excelexperts.com/VBA-Tips-Enable-Events)
----------------
با تابع آفست هم آشنایید این هم همون عملکرد رو در vba داره!
Excel VBA Offset Property - EASY Excel Macros (http://www.excel-easy.com/vba/examples/offset.html)