PDA

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



esyoo
2010/08/01, 22:29
سلام
دوستالن چطور میشه userform رو بست؟



Private Sub go_Click()
Dim username As String
username = Me.username.Text
If (username = "esmail" ) Then
UserForm1.close
Else
Application.Quit
End If
End Sub

من میخوام وقتی esmail تایپ شد userform بسته بشه
ولی با این دستور این کار اتفاق نمی افته
ممنون میشم راهنمایی بکنید
با تشکر

esyoo
2010/08/04, 20:53
مشکل رو فهمیدم
در واقع این کار جزevent هست
و از اون قسمت درست شد
در واقع با دستور hide این کار رو کردم.
ولی هدفم بیشتربرای زمانی بود که اگر کسی خواست UserForm رو ببنده کل فایل اکسل بسته بشه که با دستور زیر این کار رو انجام دادم
workbooks("esmail").close

shamsololama
2010/08/07, 15:23
با درود فراوان

برای بستن یوزر فرم از روشهای

End که با این دستور تمام یوزرفرماهی که باز است بسته خواهد شد

Unload Me که باعث بسته شدن همام فرم که مد نظر شماست می شود

Me.Hide این دستور باعث می شود بصورت موقت فرم پنهان شده برای زمانی که میخواهیم یک فرم ببندیم ولی تا باز شدن بعدی اطلاعاتی که بصورت موقت در آن نوشته شده پاک نشود

Me.Enabled = False با این دستور فرم بسته نمیشود ولی کاملا غیر فعال می شود

esyoo
2010/08/07, 15:31
بسیار مفید و کارا بود
خیلی خیلی ممنون

alisabet
2014/05/14, 09:19
ببخشيد يك سوال در همين مورد

اگر بخواهيم user form در صورت فشرده شدن هر كليدي بسته شود بايد چه كدي بنويسيم؟

~M*E*H*D*I~
2014/05/14, 09:35
از کد زیر استفاده کنید


Private Sub CommandButton1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Unload Me
End Sub

alisabet
2014/05/14, 09:43
با تشكر

اما با توجه به توضيح زير خواهشمند م راهنمائي فرمائيد
من يك تابع شخصي در اكسل دارم در هنگام اجراي تابع بنابه ضرورت بايست يك يوز فرم ظاهر شود كه تا اينجا مشكلي نيست اما ميخواهم همين يورز فرم كه ظاهر شده با فشردن هر كليدي توسط كاربر بسته شود و ادامه كدها اجرا گردد خواهشمندم اساتيد گرامي راهنمائي فرمايند در مورد اين قسمت كه "با فشردن هر كليد پنجره يوز فرم بسته شود " من را راهنمائي فرمائيد

~M*E*H*D*I~
2014/05/14, 09:55
با تشكر

اما با توجه به توضيح زير خواهشمند م راهنمائي فرمائيد
من يك تابع شخصي در اكسل دارم در هنگام اجراي تابع بنابه ضرورت بايست يك يوز فرم ظاهر شود كه تا اينجا مشكلي نيست اما ميخواهم همين يورز فرم كه ظاهر شده با فشردن هر كليدي توسط كاربر بسته شود و ادامه كدها اجرا گردد خواهشمندم اساتيد گرامي راهنمائي فرمايند در مورد اين قسمت كه "با فشردن هر كليد پنجره يوز فرم بسته شود " من را راهنمائي فرمائيد

شما باید یک کامندباتن روی فرم تعبیه کنید و در قسمت behavior خصوصیت default رو true بذارید هر دستوری که میخواید داخل رویه این کامند باتن بنویسید و در انتها unload me رو قرار بدید

alisabet
2014/05/14, 10:56
خيلي ممنون كارم راه افتاد آ يا در مورد كليك موس هم ميتوان اينكار را كرد يعني با اولين كليك موس روي هر جا يوزر فرم بسته شود؟

~M*E*H*D*I~
2014/05/14, 11:01
خيلي ممنون كارم راه افتاد آ يا در مورد كليك موس هم ميتوان اينكار را كرد يعني با اولين كليك موس روي هر جا يوزر فرم بسته شود؟

با ماوس که کافی دست مبارک یکمی حرکت کنه و بر روی دکمه ok کلیک کنید:D

alisabet
2014/05/14, 13:50
يه كم توضيح ميدم شايد منظورم رو بهتر متوجه شويد - قرار است اطلاعاتي در خانه هاي يك ستون درج شود ميخواهم كاربر همانطور كه پشت سرهم اطلاعات را در خانه ها درج ميكند بعد از هر بار تغيير محتواي يك سلول يه پيام محاسبه شده در يه يوز فرم كه البته پيامها هم مختلف هستند به كاربر نشان داده شود و لازم نباشد تا كاربر عمليات جداگانه اي براي بستن يوزر فرم انجام دهد با فشردن هر كليد از صفحه كليد پيام مزبور محو شود كه تا اينجا با راهنماي شما حل شده حالا اگر كاربر بجاي كيبرد بخواهد با موس هم اطلاعاتي درج كند باز پيام مزبور بدون هيچ مزاحمتي براي كاربر محو شود اگر نتونستم منظورم را درست بيان كنم بفرمائيد تا فايل نمونه بذارم