PDA

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



mo-aslani
2011/02/10, 08:35
با عرض سلام خدمت اساتید عزیز بویژه شمس العلما عزیز
دوستان من یه موردی برام پبش اومده که چون تعداد شیت های ورک بوک ام زیاد هست میخوام یه یوزر فرم تهیه کنم که وقتی صفحه اکسل باز میشه اون یوزرفرم نمایش داده بشه و نام هر شیت روی این فرم باشه و با انتخاب هر گزینه به شیت مربوطه منتقل بشم البته با هایپرلینک این کار رو به صورت ابتدایی انجام دادم ولی خواسته هام رو به طور کامل تامین نمیکنه در ضمن میخوام یه command button روی هر شیت قرا بگیره که با کلیک بروی اون مجددا به صفحه انتخاب شیت ها منتقل بشم
ممنون میشم از دوستان عزیزی که من رو هم راهنمایی کنن
باز هم با تشکر ویژه از شمس العلما عزیز که مشکل دوستان رو در حد توان حل میکنن:heart:

MEYTI
2011/02/10, 11:05
با سلام
خدمت شما دوست عزیز
http://www.mediafire.com/?9wmn2a697d990l9

【★ tv_kade ★】
2011/02/10, 11:27
با سلام
خدمت شما دوست عزیز
http://www.mediafire.com/?9wmn2a697d990l9

تشکر فراوان
چطورباید کاری کرد که شیتها فقط از طریق یوزرفرمی که ساختیم قابل دسترسی باشه:huh:
چون بدین صورت زیاد فرقی نمیکنه:-/
یک پی ام براتون زدم ;)

shamsololama
2011/02/10, 12:24
با عرض سلام خدمت اساتید عزیز بویژه شمس العلما عزیز
دوستان من یه موردی برام پبش اومده که چون تعداد شیت های ورک بوک ام زیاد هست میخوام یه یوزر فرم تهیه کنم که وقتی صفحه اکسل باز میشه اون یوزرفرم نمایش داده بشه و نام هر شیت روی این فرم باشه و با انتخاب هر گزینه به شیت مربوطه منتقل بشم البته با هایپرلینک این کار رو به صورت ابتدایی انجام دادم ولی خواسته هام رو به طور کامل تامین نمیکنه در ضمن میخوام یه command button روی هر شیت قرا بگیره که با کلیک بروی اون مجددا به صفحه انتخاب شیت ها منتقل بشم
ممنون میشم از دوستان عزیزی که من رو هم راهنمایی کنن
باز هم با تشکر ویژه از شمس العلما عزیز که مشکل دوستان رو در حد توان حل میکنن:heart:


با درود فراوان
در این فایل نمونه که فرستادم هم میشه لیست شیت ها رو در کمبوباکس و هم در لیست باکس هرکدام که مناسبتر می بینید انجام دهید و در این روش هر شیت جدید که اضافه شود و یا حذف شود در لیست به روز می شود برای دید یوزفرم کنترل +T و یا اجرا ماکرو نمایان می شود و فرم را به گونه ای تغییر آبشن داده ایم که زمانی که یوزرفرم باز باشد نیز به صفحه دست رسی داشته باشیم
و اینکه دوست عزیزم پرسیده که شیت ها فقط با یوزرفرم باز شود می توانید در ایتدای کا همه شیت ها را وری هاید کنید که انتخاب شیت ممکن نباشد و در یوزرفرم زمانی که شیتی را انتخاب میکنیم بقیه شیت ها هاید شود و شیت مورد نظر از هاید بیرون بیاد که همیشه یک شیت را در صفحه ببینیم

فایل نمونه:
[attachment=176]

mo-aslani
2011/02/10, 12:38
دوستان از همگی ممنون
استاد meyti تشکر از شما
استاد شمس العلما یک دنیا ممنون از راهنمایی هاتون
واقعا لطف کردین[hr]



و اینکه دوست عزیزم پرسیده که شیت ها فقط با یوزرفرم باز شود می توانید در ایتدای کا همه شیت ها را وری هاید کنید که انتخاب شیت ممکن نباشد و در یوزرفرم زمانی که شیتی را انتخاب میکنیم بقیه شیت ها هاید شود و شیت مورد نظر از هاید بیرون بیاد که همیشه یک شیت را در صفحه ببینیم

استاد عزیز
من وقتی میخوام شیت ها رو وری هاید کنم همه شیت ها رو بغیر از یک دونه وری هاید میکنه و اجازه این کار رو به من نمیده فکر کنم بایستی حتما یه شیت به صورت ویزیبل باقی بمونه در ضمن در مورد مابقی شیت ها که وری هاید شدن وقتی که ماکروی ارایه شده توسط جنابعالی رو اجرا میکنم پیام خطا میده و میگه چون شیت موردنظر هاید هست امکان لینک شدن به اون شیت وجود نداره
استاد لطف میکنین در این مورد هم این حقیر رو راهنمایی بفرمایین
ممنون از همه چیز:heart:

【★ tv_kade ★】
2011/02/10, 13:37
با عرض سلام خدمت اساتید عزیز بویژه شمس العلما عزیز
دوستان من یه موردی برام پبش اومده که چون تعداد شیت های ورک بوک ام زیاد هست میخوام یه یوزر فرم تهیه کنم که وقتی صفحه اکسل باز میشه اون یوزرفرم نمایش داده بشه و نام هر شیت روی این فرم باشه و با انتخاب هر گزینه به شیت مربوطه منتقل بشم البته با هایپرلینک این کار رو به صورت ابتدایی انجام دادم ولی خواسته هام رو به طور کامل تامین نمیکنه در ضمن میخوام یه command button روی هر شیت قرا بگیره که با کلیک بروی اون مجددا به صفحه انتخاب شیت ها منتقل بشم
ممنون میشم از دوستان عزیزی که من رو هم راهنمایی کنن
باز هم با تشکر ویژه از شمس العلما عزیز که مشکل دوستان رو در حد توان حل میکنن


با درود فراوان
در این فایل نمونه که فرستادم هم میشه لیست شیت ها رو در کمبوباکس و هم در لیست باکس هرکدام که مناسبتر می بینید انجام دهید و در این روش هر شیت جدید که اضافه شود و یا حذف شود در لیست به روز می شود برای دید یوزفرم کنترل +T و یا اجرا ماکرو نمایان می شود و فرم را به گونه ای تغییر آبشن داده ایم که زمانی که یوزرفرم باز باشد نیز به صفحه دست رسی داشته باشیم
و اینکه دوست عزیزم پرسیده که شیت ها فقط با یوزرفرم باز شود می توانید در ایتدای کا همه شیت ها را وری هاید کنید که انتخاب شیت ممکن نباشد و در یوزرفرم زمانی که شیتی را انتخاب میکنیم بقیه شیت ها هاید شود و شیت مورد نظر از هاید بیرون بیاد که همیشه یک شیت را در صفحه ببینیم

فایل نمونه:



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


اول اینکه چطور باید یوزر فرم رو کاری کرد که در عین حال به صفحه هم دسترسی داشت ؟
دوم وقتی شیت ها رو هاید میکنیم دیگه نمیشه از یوزر فرم به اون شیت لینک کرد و ارور میگیره چون هاید شده وباید قبلش از هاید دربیاد.
ممنون میشم راهنمایی کنید :blush:

shamsololama
2011/02/10, 14:45
با درود فراوان
درست می فرمائید وقتی هاید میکنیم دیکه با انتخاب آن از یوزرفرم پیام خطا میده و این طبیعی است خطا بگیره چون شیت مورد نظر ماهاید است .
همانطور که خود شما نیز اشاره کرده بودید قبلش باید از هاید بیاد بیرون یعنی کدی که داخل کمبوباکس می نویسیم که شیت رو انتخاب کنه بصورتی می نویسیم که شیت مورد نظرمون را از هاید خارج کنه و و بقیه رو هاید کنه و می بایست حداقل یک شیت همیشه داشته باشیم و نمی شود که همه رو هاید کنیم

mo-aslani
2011/02/10, 15:01
استاد ممنون از راهنمایی شما
استاد چطوری باید کد رو بنویسم که با انتخاب اون شیت از کمبوباکس شیت موردنظر رو ویزیبل کنه و به اون شیت لینک بشه در حالی که مابقی شیت ها همچنان هاید باقی میمونن
ممنون میشم اگه باز هم من رو کمک کنین

shamsololama
2011/02/11, 08:45
استاد ممنون از راهنمایی شما
استاد چطوری باید کد رو بنویسم که با انتخاب اون شیت از کمبوباکس شیت موردنظر رو ویزیبل کنه و به اون شیت لینک بشه در حالی که مابقی شیت ها همچنان هاید باقی میمونن
ممنون میشم اگه باز هم من رو کمک کنین


با درود فراوان
نمونه فایل:
[attachment=177]

mo-aslani
2011/02/11, 14:16
استاد یک دنیا ممنون از محبتتون

【★ tv_kade ★】
2011/02/11, 14:26
در صورتی که از Command Botton برای لینک کردن به شیتها استفاده کرده اید برای نشان دادن فقط یکی از شیتهای انتخابی یوزرفرم از کد زیر استفاده کنید ;)


Private Sub CommandButton1_Click()
Dim c
Sheet1.Visible = xlSheetVisible
For Each c In Sheets
If c.Name <> CommandButton1.Caption Then
c.Visible = xlSheetVeryHidden
End If
Next
End Sub


این کدبرای CommandButton1 و Sheet1 هست و برای بقیه شیت ها به همین صورت
توجه کنید حتما نامی که برای کامندباتن انتخاب کرده اید با نام شیت مورد نظر یکی باشد


نکته بعدی که اینجا بدرد میخوره جای یوزرفرم هست
همانطور که میدانید همواره یوزرفرم در مرکز نمایش داده میشه حال برای انکه جای ان را تغییر دهید میتوانید از کد زیر استفاده کنید


Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Top = (Application.Height - Me.Height) / 1.13
Me.Left = (Application.Width - Me.Width - 33)
End Sub

با این کد یوزرفرم در قسمت راست پایین (گوشه اکسل)قرارمیگیره :P
با تغییر در اعداد داخل فرمول میتوانید یوزرفرم را درجایی که مدنظرتون هست منتقل کنید :cool:


با سپاس

mo-aslani
2011/02/12, 07:20
با تشکر از شما دوست عزیز[hr]
استادان گرامی
در نمونه نهایی ارسالی توسط استاد عزیز شمس العلما همه چیز عالی هست یغیر از یک مورد که اون هم مشکل اختصاصی خود من هست نه فرم استاد بزرگوار شمس العلما و اون هم این هست که من یه شیت دارم که پسوردهای کاربران در اون نوشته شده و نباید در اختیار کاربران قراربگیره ولی با این فرم طراحی شده نام این شیت هم در کمبو باکس نمایش داده میشه و با انتخاب اون شیت تمام پسوردها برای کاربران نمایان میشه
دوستان برای حل این مشکل چکار باید بکنم
ممنون میشم اگه بازهم من رو از چشمه بیکران دانشتون بهره مند کنین
با تشکر مججد

shamsololama
2011/02/12, 11:36
با درود فراوان
برای اینکه یک شیت و یا بیشتر از شیت های که داری نمایش داده نشه می توانی با اضاف کردن یک شرط آن شیت را نشان ندهد و یا اینکه برای ورود به آن شیت از شما پسورد بخواهد که کاربرانی که پسورد آن شیت را ندارند وارد آن شیت نشوند

در فایل نمونه برای ورود به شیت یک پسورد نیاز دارید
فایل نمونه:

mo-aslani
2011/02/12, 12:45
استاد
الحق که برازنده نام کاربریتون هستین
یک دنیا ممنون از لطف و محبتتون

ariana4
2012/09/23, 13:21
سلام
و تشکر من از این فایل می خوام استقاده کنم و می خوام یوزر فرمم شامل یک کلید باشه که شیت جدید ایجاد کنه و دوم اینکه در کومبو شماره شیت را تایپ کنم و بدون خطا برام شیت را باز کنه

shamsololama
2012/09/23, 15:48
استاد
الحق که برازنده نام کاربریتون هستین
یک دنیا ممنون از لطف و محبتتون


با درود فراوان
شما لطف دارین دوست عزیز و اینکه تو انتخاب نام کاربری من بی تقصیرم چون شمس العلماء فامیلیم هست و گرنه ...

shamsololama
2012/09/23, 17:54
سلام
و تشکر من از این فایل می خوام استقاده کنم و می خوام یوزر فرمم شامل یک کلید باشه که شیت جدید ایجاد کنه و دوم اینکه در کومبو شماره شیت را تایپ کنم و بدون خطا برام شیت را باز کنه


با درود فراوان


فایل نمونه:

[attachment=939]

ariana4
2012/09/24, 07:32
ممنون از لطفی که کردی ولی این فایل شیت جدید ایجاد نمی کنه من منظورم این بود که مثلا یک شیت با فرمی خام را بهش بگم هر بار از اون مدل یکی برام کپی کنه واسم جدید بپرسخ واسه شیت اما این فایل کاری انجام نداد در ضمت اگر در کومبو دوم شماره ای را بزنم که در اون نباشه خطای مناسب بده

سپاس[hr]
راستی ببخشید اگر فرض کنیم یک قالب خاص را در همه ی شیت ها رعایت کنیم وقتی فایل در اختیار کاربر قرار می گیره امکان داره فاصله های سلولها را تغییر بده و بعد فرم قابل چاپ بهم بریزه آیا امکانی هست که فارغ از شکل فایل با زدن دکمه ای تحت عنوان چاپ هراطلاعات هر شیت را در قالب یکسانی چاپ یا نمایش بده ؟

shamsololama
2012/09/24, 09:50
ممنون از لطفی که کردی ولی این فایل شیت جدید ایجاد نمی کنه من منظورم این بود که مثلا یک شیت با فرمی خام را بهش بگم هر بار از اون مدل یکی برام کپی کنه واسم جدید بپرسخ واسه شیت اما این فایل کاری انجام نداد در ضمت اگر در کومبو دوم شماره ای را بزنم که در اون نباشه خطای مناسب بده

سپاس[hr]
راستی ببخشید اگر فرض کنیم یک قالب خاص را در همه ی شیت ها رعایت کنیم وقتی فایل در اختیار کاربر قرار می گیره امکان داره فاصله های سلولها را تغییر بده و بعد فرم قابل چاپ بهم بریزه آیا امکانی هست که فارغ از شکل فایل با زدن دکمه ای تحت عنوان چاپ هراطلاعات هر شیت را در قالب یکسانی چاپ یا نمایش بده ؟


با درود فراوان

شما فرموده بودین که یک شیت جدید ایجاد کنه که این کار رو انجام میده ولی اگر منظورتون یک شیت خاص رو میخوای کپی کنید و میتوانید آز همون شیت خاص یک سیو از بگیره یعنی کپیش کنی و آن رو خالی کنید
برای این که در کمبو هم عددی که شیت آن وجود ندارد ارور مناسب بده توی ایف بنویسید که اگر عدد وارد شده به کمبود از تعداد شیتها بیشتر بود ارور مناسب رو بهتون نشون بده

در مورد شیت قابل چاپ هم می تونی یک شیت مخصوص چاپ قرار بدی و یا اینکه قبل از پرینت اندازه رو ها و ستونها رو قبل از پرینت به اندازه مورد نظر شما تغییر داده و تنظیم کند سپس پریویو را نمایش دهد یا پرینت بگیرد

ariana4
2012/09/24, 10:27
ببینید اولا که باور کنید فایل شیت نمی سازه
ثانیا اون شماره شیتها را شما در یک حلقه از یک تا n بهش شماره دادین اما نام شیت من میتونه هر شماره ای باشه حتی میتونه کارکتر داشته باشه
و عرض کردم شیتی که میسازه می خوام نام ا از کاربر بگیره و کپی یک شیت خاص باشه
در مورد شیت چاپ هم متوجه نشدم من کاربر حرفه ای نیستم و کمک نیاز دارم
اگر لطف کنید نمونه ای قرار بدین ممنون میشم

shamsololama
2012/09/24, 11:53
ببینید اولا که باور کنید فایل شیت نمی سازه
ثانیا اون شماره شیتها را شما در یک حلقه از یک تا n بهش شماره دادین اما نام شیت من میتونه هر شماره ای باشه حتی میتونه کارکتر داشته باشه
و عرض کردم شیتی که میسازه می خوام نام ا از کاربر بگیره و کپی یک شیت خاص باشه
در مورد شیت چاپ هم متوجه نشدم من کاربر حرفه ای نیستم و کمک نیاز دارم
اگر لطف کنید نمونه ای قرار بدین ممنون میشم


با درود فراوان
در مورد شیت جدید حق با شماست کدی که نوشته بودم حذف شده بود در این فایل جدید ایجاد شیت جدید را با انتخاب کار بر و کپی از شیت مورد نظر قرار دادم و اینکه نام آن نیز کابر انتخاب کند

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

برای فرمت هم نمونه ای در یک کلید قرار دادم که می توانید آن را بر اساس خواسته خود تغییر دهید

فایل نمونه:

[attachment=941]

ariana4
2012/09/24, 12:25
سپاس فراوانی که بنده نسبت به زحمت بی دریغ شما داشتم با دکمه تشکر تنها به جا نیامد به این وسیله قدردان زحمت شما هستم
پایدار و سلامت باشید

shamsololama
2012/09/24, 14:09
سپاس فراوانی که بنده نسبت به زحمت بی دریغ شما داشتم با دکمه تشکر تنها به جا نیامد به این وسیله قدردان زحمت شما هستم
پایدار و سلامت باشید


با درود فراوان
خواهش میکنم شما لطف دارین

amirgolshan
2012/09/26, 10:42
با سلام،

۱-چرا فایل " انتخاب شیت از یوزرفورم" با فرمت " xls " ذخیره شده است ؟

۲- مگر نباید هر فایلی را که دارای ماکرو است با فرمت " macro-enabled workbook format .xlsm " ذخیره کرد؟

۳- کد را بایست در " MODULE1 " نوشت یا در " Thisworkbook " ؟ چه تفاوتی دارند؟

۴- در صورت امکان یک کتاب مناسب برای تمرین و یادگیری " VBA " ارسال فرمائید.

سپاس فراوان

shamsololama
2012/09/26, 12:59
با دود فراوان


۱-چرا فایل " انتخاب شیت از یوزرفورم" با فرمت " xls " ذخیره شده است ؟

جواب: چون این فایل در اکسل دوهزار سه ساخته شده همه فایل ها چه ماکرو داشته باشن و چه ماکرو نداشته باشن با همین فرمت ذخیره میشوند


۲- مگر نباید هر فایلی را که دارای ماکرو است با فرمت " macro-enabled workbook format .xlsm " ذخیره کرد؟

جواب : در اکسل دوهزار هفته به بالا چرا باید با پسوند XLSM ذخیره شوند


۳- کد را بایست در " MODULE1 " نوشت یا در " Thisworkbook " ؟ چه تفاوتی دارند؟

جواب:
این بستگی داره که چه کدی می خواهیم بنویسیم و به چه منظور و مهم اینکه در چه رویدادی میخواهیم بنویسیم مثلا در رویداد اوپن ورک بوک اگر باشه باید در دیسورک بوک بنویسی که این روداد در آن قسمت قرار دارد و با باز شدن فایل آن کدها اجرا میشوند در هر صورت در هر دو می شود کد نویسی کرد ولی کدهای که نیاز هست به صورت ماکرو از داخل دولوپر به آنها دست رسی داشته باشیم نیاز هست که در ماژول نوشته شوند

۴- در صورت امکان یک کتاب مناسب برای تمرین و یادگیری " VBA " ارسال فرمائید.


اگر جزوه وی بی آ ندارید و نفرستادم میلی به همین عنوان به من بزنید تا براتون جزوء میل کنم
shamsololama@yahoo.com

amirgolshan
2012/09/27, 03:47
با سلام،

سپاس فراوان از توضیح شما.

فقط امکان دارد که جمله "ولی کدهای که نیاز هست به صورت ماکرو از داخل دولوپر به آنها دست رسی داشته باشیم نیاز هست که در ماژول نوشته شوند" را بیشتر توضیح بدهید. (مثلا با یک مثال)

منظور از " دولوپر " چیست ؟

تشکر

shamsololama
2012/09/28, 09:03
با سلام،

سپاس فراوان از توضیح شما.

فقط امکان دارد که جمله "ولی کدهای که نیاز هست به صورت ماکرو از داخل دولوپر به آنها دست رسی داشته باشیم نیاز هست که در ماژول نوشته شوند" را بیشتر توضیح بدهید. (مثلا با یک مثال)

منظور از " دولوپر " چیست ؟

تشکر


دولوپر Developer یک تب هست که تو منو قرار میگیره و بصورت دیفالت غیر فعال هست و شما آن را در منو نمی بینید و بری فعال کردن آن ازتو اکسل آپشن تیک آن را بزنیت تا یه منو اضافه شود اکسل آپشن که باز کنید در اولین گزینه انتخاب سوم قرار دارد
در ای تب امکاناتی برا دست رسی به محیط وی بی آ ضبط ماکرو .... قرار دارد
مکاروهای که دراکسل رکورد میکنید در ماژول سیو میشود که از این تب میتوانید به آن دسترسی داشته و آن را اجرا کنید