PDA

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



Amir Ghasemiyan
2017/10/08, 10:30
سلام دوستان

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

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

خب اول از همه یک لیبل داخل فرم قرار بدین و اسمش رو بذارین LTime و یک لیبل دیگه هم قرار بدین و اسمش رو بذارین LDate. یک دکمه هم اضافه کنید و اسمش رو بذارین BStop
حالا داخل کدهای فرم کدهای زیر رو قرار بدین: (روی اسم فرم در بخش project راست کلیک کنید و گزینه view code رو کلیک کنید)



Private Sub UserForm_Activate()
Application.Run "StartTimer"
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
StopTimer
End Sub

Private Sub BStop_Click()
Application.Run "StopTimer"
Unload Me
End Sub



خب در مرحله بعد یک ماژول درست کنید و کدهای زیر رو داخلش قرار بدین: (از منوی insert گزینه module رو کلیک کنید)



Option Explicit
Dim T


Sub StopTimer()
On Error Resume Next
Application.OnTime T, Procedure:="Update", Schedule:=False
End Sub


Sub StartTimer()
T = Now + TimeValue("00:00:01")
Application.OnTime T, "Update"
End Sub


Sub Update()
UserForm1.LTime.Caption = Format(Now, "hh:mm:ss")
UserForm1.LDate.Caption = Format(Date, "yyyy/mm/dd")
Call StartTimer
End Sub

935007410
2019/01/04, 15:40
سلام دوستان

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

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

خب اول از همه یک لیبل داخل فرم قرار بدین و اسمش رو بذارین LTime و یک لیبل دیگه هم قرار بدین و اسمش رو بذارین LDate. یک دکمه هم اضافه کنید و اسمش رو بذارین BStop
حالا داخل کدهای فرم کدهای زیر رو قرار بدین: (روی اسم فرم در بخش project راست کلیک کنید و گزینه view code رو کلیک کنید)



Private Sub UserForm_Activate()
Application.Run "StartTimer"
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
StopTimer
End Sub

Private Sub BStop_Click()
Application.Run "StopTimer"
Unload Me
End Sub



خب در مرحله بعد یک ماژول درست کنید و کدهای زیر رو داخلش قرار بدین: (از منوی insert گزینه module رو کلیک کنید)



Option Explicit
Dim T


Sub StopTimer()
On Error Resume Next
Application.OnTime T, Procedure:="Update", Schedule:=False
End Sub


Sub StartTimer()
T = Now + TimeValue("00:00:01")
Application.OnTime T, "Update"
End Sub


Sub Update()
UserForm1.LTime.Caption = Format(Now, "hh:mm:ss")
UserForm1.LDate.Caption = Format(Date, "yyyy/mm/dd")
Call StartTimer
End Sub




کاش در قالب فایل ارسال می کردین که همه بتونن ازش استفاده کنن. مثل من:min18::min18:

حسام بحرانی
2019/06/28, 19:40
با اجازه امیرجان
یک فایل هم بذاریم بد نیست.

حسام بحرانی
2019/06/28, 20:53
برای تقویم شمسی نیاز به ماژول های شمسی ساز دارید که در فایل پیوست وجود داره.

اگر اونها رو داشته باشید کافیه کد آقای قاسمیان (https://forum.exceliran.com/member.php/9953-Amir-Ghasemiyan) رو بصورت زیر تغییر بدید:

Sub Update()
UserForm1.LTime.Caption = Format(Now, "hh:mm:ss")
UserForm1.LDate.Caption = Format(J_TODAY, "yy/mm/dd")
Call StartTimer
End Sub
یعنی بجای Date از J_TODAY استفاده کنید.

موفق باشید.

Amir Ghasemiyan
2019/06/29, 00:24
سلام خدمت اساتید محترم و همه دوستان
درصورت داشتنماژول های شمسی ساز تاریخ بصورت دو رقمی یعنی 98/04/07 نمایش داده میشه که میشود بصورت زیر آنرا اصلاح کرد (یعنی 1398/04/07)


sub update()
userform1.ltime.caption = format(now, "hh:mm:ss")
userform1.ldate.caption = format(j_today, "13yy/mm/dd")
call starttimer
end sub

اگر برای آرگومان اول تابع j_today عدد ۱ را وارد کنید سال را چهار رقمی خواهد نوشت. نیازی به نوشتن دستی نیست

Amir Ghasemiyan
2019/06/29, 00:25
استاد ببخشید یه سوال جانبی
"چطوری کدها را مثل همین مثال داخل مستطیل میفرستید راهنمایی لطفا البته ببخشید من تازه واردم"

https://forum.exceliran.com/showthread.php/15195?p=70580&viewfull=1#post70580

Amir Ghasemiyan
2019/07/01, 20:26
دوست عزیز لطفا برای هر سوال خودتون یک تاپیک مستقل در تالار مرتبط ایجاد بفرمایید

935007410
2019/09/30, 21:54
لطفا در مورد نحوه کارکرد کد ها یه کم توضیح بفرمایید

Amir Ghasemiyan
2019/10/05, 22:03
لطفا در مورد نحوه کارکرد کد ها یه کم توضیح بفرمایید
سلام دوست عزیز
کلیات کار به این صورته که وقتی یوزرفرم فعال میشه (Private Sub UserForm_Activate) ماژول StartTimer فعال میشه که کارش اینه که هر ثانیه عملیات ماژول Update رو انجام بده. عملیات این ماژول هم به این صورت هست که لحظه حال رو بصورت تاریخ و ساعت در LTime و LDate بهمون نشون میده و دوباره ماژول StartTimer رو فراخوانی میکنه و این چرخه همینطور ادامه پیدا میکنه

میثم مقدم نیا
2019/10/17, 18:27
سلام آقا امیر
برای نمایش ایام هفته در این فرم چیکار باید کرد
من از کد زیر استفاده کردم فقط عدد نمایش میده مثلا بجای پنجشنبه ۵ مینویسه

UserForm1.WeekDay.Caption = Format(J_WEEKDAY (J_TODAY(1)))

mokaram
2019/10/18, 09:22
j_weekday (j_today(1)))



این تکه کد را به شکل زیر تغییربدید

j_weekday (j_today(1),1)

اگر عدد یک را نزارید به همون شکلی که فرمودید نشون میده

935007410
2022/03/31, 22:54
ممنونم