PDA

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



esyoo
2010/08/01, 12:35
سلام
من یک فایل اکسل دارم به نام fl.xlsx
و با ویژوال یک برنامه کوچکی نوشتم که نام و نام خانوادگی رو میگیره و در شیت اول ذخیره میکنه(طبق عکس زیر)
http://aks98.com/images/9nz6vq6olp7myhp1ktk.jpg


حالا مشکل من اینجاست که :
1)
وقتی میخوام فایل اکسلم رو ران کنم اصلا این userform رو که درست کردم نمی بینم
می خوام به محض اجرای فایل اکسل userform هم ا جرا بشه و کسی به هیچ شیتی و جایی دسترسی نداشته باشه
2)
یک Button درست کنم و با کلیک کردن روش فورمی که درست کردم ران بشه

با تشکر

esyoo
2010/08/01, 16:03
طبق آموزش اینجا پیش رفتم ولی چیزی دستگیرم نشد
http://office.microsoft.com/en-us/excel-help/run-a-macro-HP005202306.aspx

یعنی روی فایل خودم کار نمیشه انجام داد.
و این پیغام خطا رو میده

http://aks98.com/images/0x7ckdud5ei9lu7adbw.jpg

esyoo
2010/08/02, 14:33
فعلا مشکلم حل شد و فهمیدم مشکلم کجا بوده

shamsololama
2010/08/07, 16:56
با درود فراوان
کدی که در بالا عکسش رو زدی در واقع کاری که میخوای رو انجام نمیده یعنی این که یوزر فرم را باز کنه به صورتی که کاربر نتونه به فایلت دسترسی داشته باشه که آن با چند تا کدا ساده امکان پذیر است که اگر هنوز نیاز داری بگو تا برایت بنویسیم

ولی خطای که بالا مشاهد کردی دلیلش این که خط دوم اضافی هست و باید آن را پاک کنی
یعنی این خط
Private Sub CommandButton1_Click()
چون این مربوط به زیر روال کلید باتونی است که در یوزرفورم استفاده کرده ای

khakzad
2010/08/16, 23:07
سلام
اگر لطف کنید این کدها رو بگید ممنون میشم.
اینکه یک یوزرفرم ران بشه و فقط یک سری اطلاعات رو نمایش بده و ما با زدن دکمه ok که درcomand button هست ببندیمش و وارد فایل بشیم
مرسی

m_d6712
2010/08/17, 03:39
این فایل اکسل که در تاپیک زیر گذاشتم یک فرم داره که در موقع باز شدن برنامه باز میشه! لطفا ماکرو را فعال کنید.

http://forum.exceliran.com/showthread.php?tid=224

یا می توانید فایل را از همین جا بگیرید:
http://www.mediafire.com/file/83ojc03c2pl2jfr/UserPass.xlsm

shamsololama
2010/08/17, 15:18
با درود فراوان
ضمن سپاس فراوان از دوست خوبم m_d6712 که فایل خوبی را در اینجا قرار داده اند
من هم یک فایل با قرار دادن نام و کلمه عبور را اینجا بصورت ساده تری قرار می دهم تا دوستان نحوه قرار دادن کده ها و جایگاه هر کدام را ببینند

اول در فایل مورد نظر فرمی را ایجاد می کنیم که دو تکست باکس و یک کلید داشته باشد
Textbox1
Textbox2
CommandButton1

کد زیر در CommandButton1 قرار می دهیم
Private Sub CommandButton1_Click()
If TextBox1.Text <> "" And TextBox2.Text = "exceliran" Then
Unload Me
Else
MsgBox "نام و کلمه عبور را وارد کنید"
End If
End Sub

pic2
http://aks98.com/images/s6pjxupy2jnmm5l5zmlo.jpg (http://aks98.com/)


با دبل کلیک بر رو ی یوزرفرم به صفحه کد آن رفته و از فرور ریز خاصیت QueryClose را انتخاب می کنیم
و کد زیر را وارد میکنیم که این کد برای جلو گیری از بسته شدن یوزرفرم از طریق ضربدر یوزرفرم بود که مقدار Cancel را در آن برابر با 1 و یا True قرار می دهیم

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If TextBox1.Text = "" And TextBox2.Text <> "exceliran" Then
MsgBox "نام و کلمه عبور را وارد کنید"
Cancel = True
End If
End Sub

pic4
http://aks98.com/images/snxf4pfn8jnw22u3ae.jpg (http://aks98.com/)

و همچنین برای خاصیت فعال شدن یوزر فرم کد زیر را می نویسیم که این کد با فعال شدن یوزرفرم شیت 2و شیت سه را مخفی می کند

Private Sub UserForm_Activate()
Sheet2.Visible = xlSheetVeryHidden
Sheet3.Visible = xlSheetVeryHidden
End Sub

و در صورت درست وارد کند نام و کلمه عبور و بسته شدن فرم دوباره شیت 2و 3 فعال می شوند که از کد زیر در خاصیت Terminate نوشته می شود استفاده می کنیم

Private Sub UserForm_Terminate()
Sheet2.Visible = xlSheetVisible
Sheet3.Visible = xlSheetVisible
End Sub

و یرای باز شدن یوزرفرم در هنگام باز شدن فایل در صفحه کد ورک بوک کد زیر را می نویسیم

Private Sub Workbook_Open()
UserForm1.Show
End Sub

pic1
http://aks98.com/images/r38la6mae3uxszl1t2kv.jpg (http://aks98.com/)


قبل از بسته شدن فایل هم در صفحه کد ورک بوک در خاصیت BeforeClose کد زیر را می نویسیم

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheet2.Visible = xlSheetVeryHidden
Sheet3.Visible = xlSheetVeryHidden
End Sub

pic3
http://aks98.com/images/snxf4pfn8jnw22u3ae.jpg (http://aks98.com/)



نمونه فایل
http://www.xlpar.com/0om30rd5efcj/در_خواست_کلمه_عبور.xls.html

http://www.xlpar.com/07lclv3vy1in/Pass_User.xls.html

khakzad
2010/08/17, 18:48
خیلی خیلی ممنون
خیلی کامل و با حوصله توضیح دادین
فقط یه مسئله کوچیک، من یکuserform یکtext box و یک command butom دارم.که در واقع فقط جهت معرفی و خوش آمد گویی هست. تنها خواسته هم این هست که موقع باز کردن فایل این userform اجرا بشه و با زدن دکمه ورود که همونcommand butom هست وارد نرم افزار بشه(بدون پسورد)
اما هر چی تلاش کردم موفق نشدم:(

esyoo
2010/08/18, 01:01
آیا منظور شما همین بود؟
نمونه فایل رو دانلود کنید.
http://www.4shared.com/file/6q2xsKB_/esyoouserform.html

shamsololama
2010/08/18, 07:09
با درود فراوان

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

و کد زیر را وارد کنید
همانطور که می بینید این کد برای باز کردن یوزر فرمی است که نام آن userform1 هست
و فرقی نمی کند که یوزرفرم شما پسور براش گذاشته باشی یا نه و وظیفه آن فقط باز کردن فرم است

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

Private Sub Workbook_Open()
UserForm1.Show
End Sub


http://aks98.com/images/r38la6mae3uxszl1t2kv.jpg (http://aks98.com/)

khakzad
2010/08/18, 10:24
با تشکر از دوستان
لطف کردین
حل شد:)
همینا رو می نوشتم.اما جواب نمی داد.که دیگه الان درست شد:)

daghyad
2012/03/31, 22:55
اگه میخوای یزر فرم هنگام باز کردن لود بشه چند تا شرط لازمه
ایک اولا باید یوزرر فرم دکمه کنترلی نداشته باشه
دو یوزر فرم هنگام لود شدن ماکیزمایز باشه
سه برای ورور می تونی چند تا کار انجام بدی یک botton و یک فثطف باکس قرار دی و شرط بذاری که اگه مقدار تکس باکس برابر با کدی بود که شما تعریف می کنید اون موقع بتونه وارد محیط اکسل بشه ای کار هارو من در سر رسیدی که طراحی کردم و در لینک
http://amar80.blogfa.com/9003.aspx
اون را دانلود کنید قفل اونا بشکنید و خیلی مطالب میشه ازش یاد گرفت

daghyad
2012/04/01, 01:45
سلا فرم را که میذاریم هنوز کلید کنترلی داره و باید کلید های کنترلب را حذف کرد و با alt+f4 را بست

~M*E*H*D*I~
2012/04/01, 01:49
اگه فایل ساده ای به عنوان نمونه قرار بدید ممنون میشم این فایل های ساده نسبت به برنامه های پیچیده ارزش اموزشی بالاتری دارند به علت سهولت در درک نحوه عملکرد

payam
2013/03/25, 10:45
با درود به همه
اگه بخوایم موقع باز شدن اکسل باز نشه و هر وقت خودمون خواستیم با زدن یک کلید باز بشه چه کدی باید نوشته بشه؟
من یک فرم درست کردم ولی کدهاش رو بلد نیستم بنویسم. آخه VBA کار نکردم. اگه امکانش هستبرام کدهاش رو بنویسید و توضیح هم بدید. سپاسگزارم.اینم لینک دانلودش

http://www.uplooder.net/cgi-bin/dl.cgi?key=be5b09d9f6864c9d79e46eefa5e47560

امين اسماعيلي
2013/03/25, 12:39
با درود
استاد شمس بسیار عالی توضیح دادن

در قسمت workbook همون جایی که نوشتیم userform1.show در event بازشدن workbook کد زیر را بنویسین


[undefined=undefined]

Private Sub Workbook_Open()
Application.Windows.Application.Visible = False
UserForm1.Show
End Sub

کد خط اول اکسلتون رو از visible خارج میکنه و همین خط رو در اون قسمت که کلید رو تو یوزر فرم میزارین و میگین اگه پسورد درست بود فلان کار رو انجام بده (اگه پس دارین) بنویسین و فقط به جای
false بنویسین true
این کار رو درست انجام بدین حله.

khakzad
2013/03/26, 11:10
سلام
اگر هم با یک کلید میخواین اجرا بشه. اول یک shape بذارید.بعد یک module بنویسید با این کد:
sub namayesh()
userform1.show
end sub
بعد روی shape کلیک راست کنید و assign رو بزنید و ماکرو namayesh را انتخاب کنبد.
اینطوری با هربار زدن کلید مورد نظر، فرم نشان داده میشه

payam
2013/03/26, 14:20
سپاسگزارم دوست عزیز