PDA

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



جینگیل
2015/07/05, 22:00
دوستان عزیز من یک فایل دارم طراحی میکنم که دارای ستون های فراوانی هست و هرکاربر بنا به اطلاعاتی که وارد میکند نیاز هست تنها بخشی از انرا جواب بده
مثلا فرض کنید وضعیت پرونده یک بیمار را کاربر باید پر کند اگر مرد بود تنها باید به سوالات مربوط به جنس مرد پاسخ بده و مابقیه پرسشنامه را برای همین فرد ادامه دهد و پرسش های جنس زن را خالی بگذارد منتها به دلیل زیاد بودن و تنوع سوالات ،امکان شیت بندی و تفکیک بسیار سخت میشود

حال سوال من:

چطور میشود زمانی که کاربر جنس بیمار را مرد انتخاب میکند مابقی سوالات جنس زن هاید و از دستزس او خارج شود و یا امکان تایپ اطلاعات را در این بخش ندهد


واییییییییییییییی چقدر تایپیدم خداکنه منظورم را رسونده باشم:min15:

generalsamad
2015/07/05, 22:39
با سلام
اگه امکام داره یه فایل نمونه ضمیمه کنید
لازم نیست اطلاعاتی توش باشه فقط سر ستونها نوشته باشه و ستونهای مربوط به جنسیت مرد و زن نیز مشخص باشه

mohammad_ashooryan
2015/07/06, 10:44
سلام
شما ميتونيد با استفاده از نامگذاري و استفاده از ابزار data validation بهمراه تابع indirect به صورت آرايه اي اينكار رو انجام بديد.
مراحل كار در فايل پيوست:
1-نوشتن سوالات مربوط به مرد و زن و نامگذاري آنها (به قسمت name manager مراجعه شود).
2-تايپ سوالات نام- نام خانوادگي و جنسيت در سلولهاي d1 تا fi.
3-انتخاب سلول f2 و سپس از ابزار data validation از تب data و انتخاب گزينه list و انتخاب محدوده $A$1:$A$3 براي قسمت source.
4-انتخاب محدوده G1تاH1 و نوشتن فرمول زير به صورت آرايه اي(بعد از نوشتن فرمول همزمان كليدهاي كنترل و شيفت و اينتر را بفشاريد.)


=IFERROR(INDIRECT(F2);"")
5- انتخاب سطر2 و راست كليك و انتخاب format cell و برداشتن تيك locked از تب protection.
6- انتخاب گزينه protect seet از تب review و برداشتن تيك select locked cell و گذاشتن پسورد.(من پسورد نذاشتم.)
7- حالا كاربر پس از نوشتن نام- نام خانوادگي خود و سپس انتخاب جنسيت از سطر2 فقط سوالات مربوط به خود را خواهد ديد.
8- براي فعال كردن شيت و ديدن قسمت هاي نامگذاري شده از تب rivew گزينه unprotect seet را انتخاب كنيد.
9- من اينكار رو برا دو تا سوال انجام دادم. براي سوالات بيشتر محدوده نامگذاري و فرمول را گسترش دهيد.
سوالي بود در خدمتم.
7679

جینگیل
2015/07/07, 19:11
از پاسخ همه ممنونم

من جنس زن و مرد را مثال زدم درواقعه شاید نوع توضیحم مناسب نبوده منظورم اینکه اگر پاسخ یک سوال خیر هست که هیچ کاربر ادامه سوالات را پاسخ میدهد اگر بله بود در مورد همون موضوع سوالات دیگری را باید جواب بده من فایل مشابهش را ارسال میکنم
http://city-upload.com/s42lobudhvb3/Book_1388.xlsx

در این فایل اگر مورد بستری شده سوالات مربوط به ان وجود دارد که کاربر باید پاسخ بدهد در غیر این صورت میخواهم سوالات مربوط به ان هاید شود

جینگیل
2015/07/07, 19:26
دوستان عزیز راسی شرمنده یک مشکل دیگر هم دارم در فایل پیوست شده فرمول های نوشته شده و من تا محدوده ای اتوفیلد کردم ولی این فایل دست هزاران کاربر میرود که ممکنه اصلا اکسل بلد نباشن!!!

چطور میشود بدون نیاز به اتوفبلد فرمول نوشت و به هر ستون از ابتدا تا انتها فرمان داد

جینگیل
2015/07/07, 22:51
اقا محمد ممنونم من فرمایش شما را با توجه به فایل پیوست شده ام و نوع لیست انتخابی ام میتونم اجرا کنم؟؟

البته سعی کردم اما نتونستم و ارور میداد نمیدونم کجا اشتباه کردم

Ali Parsaei
2015/07/08, 12:52
سلام،
البته با استفاده از کدنويسي و ماکروها مي شود خواسته شما را برآورده کرد ولي با توجه به اينکه فايل شما دست کاربران زيادي (که ممکن است اکسل بلد نباشند) مي رسد و علاوه بر اين در کامپيوترهاي متفاوتي هم اجرا مي گردد، اين روش دردسرهاي زيادي خواهد داشت.
ضمن اينکه خواسته شما کمي با فايل ارسالي منافات دارد، اگر فايل صرفا" جهت تکميل يک پرسشنامه بود مي شد فرض کرد که برحسب عبارت وارده در يک خانه، ستونهاي بعدي اش مخفي يا نمايان شود.
ولي اين فايل براي ورود مقدار زيادي پرسشنامه هاي مختلف است لذا ممکن است فرضا" خانه اي حاوي عبارت "بستري شده" باشد و خانه پاييني اش (که مربوط به پرسشنامه بعدي است) حاوي عبارت "بستري نشده" باشد، آن وقت با انتخاب خانه بالايي بايد موارد مرتبط با آن نمايان و با انتخاب خانه پاييني مخفي شوند!!!! که اين حالت زياد معقول نيست!
بهترين کار فکر کنم استفاده از خصوصيت conditional formating اکسل باشد.
کار آن به اين نحو است که فرمت يک سل را برحسب شروط داده شده تغيير مي دهد.
مثلا" مي توان تعيين کرد که اگر در خانه فرضي a1 عبارت: "سابقه بستري نداشته" نوشته شد، رنگ زمينه خانه a2 (که فرضا" بايد مدت بستري در آن نوشته شود) مشکي گردد.
البته با توجه به فايل شما شايد يک کم سرعت فايل را آهسته کند ولي اين براي سر و کار داشتن با کاربران زياد فکر کنم مناسبترين راه باشد.
در مورد اتوفيل هم حتما" بايد از اول فرمولهايي که مي خواهيد را تا آخر تخصيص دهيد، چاره اي نيست! وگرنه باز کد نويسي و .....
ولي مي توانيد فرمولها را به نحوي بنويسيد که به صورت شکيل تري در بيايد، مثلا" در خانه l4 به جاي فرمولي که الآن نوشته ايد فرمول زير را نوشته و تا پايين درگ کنيد:


=if(k4&"/"&j4&"/"&i4="//";"";k4&"/"&j4&"/"&i4)

در اين صورت وقتي سال و ماه و روز در خانه هاي بغلي وارد نشده ديگر // نشان داده نخواهد شد.
و يا در خانه m4 فرمول را با فرمول زير تعويض و تا پايين درگ کنيد:


=iferror(mod(1394;k4);"")

در اين صورت اگر اشکال تقسيم بر صفر پيش آمد آن را نشان نخواهد داد.
ضمن اينکه فايلتان اشکالاتي هم دارد، مثلا":
در قسمت hf3 کارتان اشتباه است! زيرا در آن فرمول نوشته ايد و در عين حال اجازه تغيير آن را به کار بر داده ايد، خوب اگر کاربر چيزي را در آن انتخاب و ثبت کند ديگر فرمول پاک خواهد شد!
اگر اين قسمت بستگي به مقدار انتخابي ni13 دارد ديگر نبايد کاربر بتواند به آن دست بزند، کاربر بايد ni13 را تعيين کند و سپس hf3 خود به خود محاسبه مي گردد.
شما بايد خانه هاي حاوي فرمول را قفل کنيد.
اگر وارد نيستيد بفرماييد تا راهنماييتان کنيم که چگونه اين کار امکان پذير است.
براي مورد conditional formating که گفتم هم يک نمونه فايل ضميمه مي کنم:

جینگیل
2015/07/10, 02:12
از همه دوستان گلم بینهایت ممنونم

اقا پارسا گرامی فوقالعاده سپاسگزارم.در مورد باز بودن و قفل نکردن کاملا صحیح میفرمایید ولی از انجا که کار پزشکی و طبیعت استثنا پذیر هست نمیتوان موارد را صد درصد پیش بینی کرد و البته چون من در پایلوت قبلی ام با قفل کردن حسابی تودردسر افتادم به اجبار این بار کوتاه امدم:min16:


از اینکه اینقدر وقت گذاشتین ممنونم از همه دوسسسسسسسسسسسسسسستان متشکرم شبهای قدرتان پربرکت و نورانی:min1: