PDA

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



shamsololama
2010/02/15, 17:40
[با درود فروان
زمانی که روی یک یوزرفرم کلیدهای را قرار داده ایم و می خواهیم برای آن کلید ها روی کیبرد کلید میانبر قرار دهیم بدین صورت عمل می کنیم
روی یوزرفرم دوبل کلید کرده تا به صفحه کد آن وارد و کد زیر را بنویسید.

Private Sub UserForm_Initialize()
CommandButton1.Accelerator = "d"
End Sub

همانطور که می بینید این میانبر برای CommandButton1 نوشته شده که برای کلیدهای دیگر کافیست نام کلیدهای دیگر نیز به همین ترتیب بنویسید.

برای اجرای میانبر Alt+c که اجرا کنید CommandButton1 عمل می کند:blush:

مثال
[attachment=1]

【★ tv_kade ★】
2010/09/12, 23:11
درود
من کلید میانبرو همونطور که گفتید ساختم در حالتی که دارای دو گزینه بله و خیر ( Yes Or NO ) هستیم

اما مشکلی که هست اینه که وقتی بروی هر دو کلیک میشه به صفحه اول یوزر فرم بر میگرده مثله فایل نمونه ای که قرار دادین
اما چیزی که من میخوام اینه که وقتی بروی Yes کلیک میکنم به داخل لیست بره و وقتی بروی No کلیک میکنم کلا از اکسل بیاد بیرون

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

ممنون

mrexcel
2010/09/13, 07:53
استاد بزرگوار جناب آقاي شمس العلما از توجهتون به مسائل طرح شده در تالار كمال تشكر را دارم
مسائل بسيار كاربردي زيبا طرح شده است

shamsololama
2010/09/13, 09:12
با درود فراوان

اگر با زدن کلید yes و No نتیجه ای یکسان می گیریم به دلیل آن است که برای کلیدهای yes و No دستوری ننوشته ایم
و اگر بخواهیم با زدن مثلا Yes از برنامه خارج شود باید چنین دستوری را بنویسیم

Private Sub CommandButton2_Click()
If MsgBox("CommandButton2", vbYesNo) = vbYes Then
ActiveWindow.Close
End If
End Sub

【★ tv_kade ★】
2010/09/13, 22:43
حالا اگه ما بخوایم هم واسه yes و هم no دستور بنویسیم یه مشکل دارم اونم این که نمی دونم چطور باید دوشرط که برای yes و no میذاریمو با هم ادغام کنم

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

Private Sub CommandButton2_Click()
If MsgBox("CommandButton2", vbYesNo) = vbNo Then
ActiveWindow.Close
End If
If MsgBox("CommandButton2", vbYesNo) = vbYes Then
UserForm1.Hide

End Sub

مشکلی که در این دستور هست اینه که دوبار دستور رو نشون میده
حالا چطور باید این دو ایف رو ادغام کرد که فقط یبار میانبر اجرا بشه؟

سوالی دیگری که مرتیط با این موضوع دارم
من نوشته ای که تو این میانبر میخوام بنویسم چند سطره

چطور نوشته ها به صورت سطر زیر هم درمیان؟
برای مثال در همین فایل نمونه نوشته ای که قرار داده شده
CommandButton2
هست
حالا من میخوام چهار پنج تا CommandButton2
زیر هم باشه. چجوری این کار انجام میشه؟

با سپاس

shamsololama
2010/09/14, 07:26
با درود فراوان

سئوال اول اینکه دو ایف نیاز نداریم شما ایف اول که نوشتی بجای end می نویسی else و بعد از هر دستوری بنویسی دستور دوم محسوب می شود چون در اینجا دو شرط بیشتر نداریم
که اگر از دو شرط بیشتر شد می شود بجای Else از elseif استفاده کنیم

کد به این صورت می شود
Private Sub CommandButton2_Click()
If MsgBox("CommandButton2", vbYesNo) = vbNo Then
ActiveWindow.Close
else

UserForm1.Hide
End If
End Sub

و یا به اینصورت:

Private Sub CommandButton2_Click()
If MsgBox("CommandButton2", vbYesNo) = vbNo Then
ActiveWindow.Close
ElseIf MsgBox("CommandButton2", vbYesNo) = vbYes Then
UserForm1.Hide
End If
End Sub[hr]
با درود فراوان

در مورد سئوال دوم هم متوجه منظور شما نشدم

ولی چیزی که حدس می زنم اینه که می خواهید اسم کلید که مثلا Commadbutton2 هست
بجای ان اسمی برای روی کلیدتا متنی که می نوسیدی طولانی و در چند سطر باشد

که در این صورت بعداز بزرگ کردن اندازه کلید روی کلید به دو بار کلیک کردن با فاصله همانطور که می دانید نشان گر موس داخل
کلید قرار میگیرد برای ویرایش نام آن آن موقع با نوشتن سطر اول شیفت را پائین نگه دارید و اینتر بزنید تا در سطر دوم قرار بگیرید
Shift+Enter
و اگر منظور شما چیز دیگری است بفرمائید

【★ tv_kade ★】
2010/09/15, 01:58
نه منظورم همونی بود که توضیح دادین
مشکلم حل شد
ممنون

حسینعلی
2014/09/03, 23:21
اساتیدبزرگی همچون استاد شمس العلما استاد فیروزجایی واقعا معرکه هستند وباید همه دعاگوی این اساتیدبزرگ باشیم که فوق العاده هستند،درنهایت از هردوی ایشان کمال تشکر وقدردانی را مینماییم

amir.maliyan
2017/09/06, 19:15
سلام دوستان کی میتونه زحمت بکشه به سوال من جواب بده
من یه فرم دارم میخام وقتی یه عدد وارد میکنم مثلا شماره شناسنامه جلوی اون تکس باکسی که عدد وارد کردم به طور خودکار بدون زدن کلید یا چیزی مشخصات اون فرد و عکسش رو بیاره

کی میتونه کمکم کنه