نمایش ساعت و تاریخ در فرم

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    آموزشی نمایش ساعت و تاریخ در فرم

    سلام دوستان

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

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

    خب اول از همه یک لیبل داخل فرم قرار بدین و اسمش رو بذارین 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

    • 2018/07/27
    • 14
    • 20.00

    #2
    نوشته اصلی توسط Amir Ghasemiyan
    سلام دوستان

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

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

    خب اول از همه یک لیبل داخل فرم قرار بدین و اسمش رو بذارین 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

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

    کامنت

    • حسام بحرانی

      • 2013/09/29
      • 2065
      • 72.00

      #3
      فایل نمونه

      با اجازه امیرجان
      یک فایل هم بذاریم بد نیست.
      فایل های پیوست شده
      [CENTER][B][SIZE=5][COLOR=#006600][FONT=georgia][COLOR=#800000]!With [/COLOR][/FONT][/COLOR][COLOR=#006600][FONT=georgia]God [/FONT][/COLOR][COLOR=#006600][FONT=georgia][COLOR=#800000]all [/COLOR][/FONT][/COLOR][COLOR=#800000][FONT=georgia]things are [/FONT][/COLOR][COLOR=#006600][FONT=georgia]possible[/FONT][/COLOR][/SIZE][/B][B][FONT=Tahoma]
      [/FONT][/B][/CENTER]
      [CENTER][B][FONT=Tahoma] [IMG]http://forum.exceliran.com/attachment.php?attachmentid=5334&d=1419428336[/IMG]
      [/FONT][/B][SIZE=1][FONT=Tahoma][B][FONT=Tahoma]
      [/FONT][/B][/FONT][/SIZE]
      [/CENTER]

      کامنت

      • حسام بحرانی

        • 2013/09/29
        • 2065
        • 72.00

        #4
        تاریخ شمسی در یوزرفرم

        برای تقویم شمسی نیاز به ماژول های شمسی ساز دارید که در فایل پیوست وجود داره.

        اگر اونها رو داشته باشید کافیه کد آقای قاسمیان رو بصورت زیر تغییر بدید:
        کد:
        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 استفاده کنید.

        موفق باشید.
        فایل های پیوست شده
        [CENTER][B][SIZE=5][COLOR=#006600][FONT=georgia][COLOR=#800000]!With [/COLOR][/FONT][/COLOR][COLOR=#006600][FONT=georgia]God [/FONT][/COLOR][COLOR=#006600][FONT=georgia][COLOR=#800000]all [/COLOR][/FONT][/COLOR][COLOR=#800000][FONT=georgia]things are [/FONT][/COLOR][COLOR=#006600][FONT=georgia]possible[/FONT][/COLOR][/SIZE][/B][B][FONT=Tahoma]
        [/FONT][/B][/CENTER]
        [CENTER][B][FONT=Tahoma] [IMG]http://forum.exceliran.com/attachment.php?attachmentid=5334&d=1419428336[/IMG]
        [/FONT][/B][SIZE=1][FONT=Tahoma][B][FONT=Tahoma]
        [/FONT][/B][/FONT][/SIZE]
        [/CENTER]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          نوشته اصلی توسط vahid3822
          سلام خدمت اساتید محترم و همه دوستان
          درصورت داشتنماژول های شمسی ساز تاریخ بصورت دو رقمی یعنی 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

            • 2013/09/20
            • 4598
            • 100.00

            #6
            نوشته اصلی توسط vahid3822
            استاد ببخشید یه سوال جانبی
            "چطوری کدها را مثل همین مثال داخل مستطیل میفرستید راهنمایی لطفا البته ببخشید من تازه واردم"
            https://forum.exceliran.com/showthre...ll=1#post70580

            کامنت

            • Amir Ghasemiyan

              • 2013/09/20
              • 4598
              • 100.00

              #7
              دوست عزیز لطفا برای هر سوال خودتون یک تاپیک مستقل در تالار مرتبط ایجاد بفرمایید

              کامنت

              • 935007410

                • 2018/07/27
                • 14
                • 20.00

                #8
                لطفا در مورد نحوه کارکرد کد ها یه کم توضیح بفرمایید

                کامنت

                • Amir Ghasemiyan

                  • 2013/09/20
                  • 4598
                  • 100.00

                  #9
                  نوشته اصلی توسط 935007410
                  لطفا در مورد نحوه کارکرد کد ها یه کم توضیح بفرمایید
                  سلام دوست عزیز
                  کلیات کار به این صورته که وقتی یوزرفرم فعال میشه (Private Sub UserForm_Activate) ماژول StartTimer فعال میشه که کارش اینه که هر ثانیه عملیات ماژول Update رو انجام بده. عملیات این ماژول هم به این صورت هست که لحظه حال رو بصورت تاریخ و ساعت در LTime و LDate بهمون نشون میده و دوباره ماژول StartTimer رو فراخوانی میکنه و این چرخه همینطور ادامه پیدا میکنه

                  کامنت

                  • میثم مقدم نیا

                    • 2017/03/23
                    • 558
                    • 41.00

                    #10
                    سلام آقا امیر
                    برای نمایش ایام هفته در این فرم چیکار باید کرد
                    من از کد زیر استفاده کردم فقط عدد نمایش میده مثلا بجای پنجشنبه ۵ مینویسه
                    کد HTML:
                    UserForm1.WeekDay.Caption = Format(J_WEEKDAY (J_TODAY(1)))
                    Last edited by میثم مقدم نیا; 2019/10/17, 20:15.
                    [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                    کامنت

                    • mokaram
                      مدير تالار اکسل و بانک اطلاعاتی

                      • 2011/02/06
                      • 1805
                      • 74.00

                      #11
                      نوشته اصلی توسط mmn1000

                      کد HTML:
                      j_weekday (j_today(1)))
                      این تکه کد را به شکل زیر تغییربدید
                      کد PHP:
                      j_weekday (j_today(1),1


                      اگر عدد یک را نزارید به همون شکلی که فرمودید نشون میده
                      [CENTER][IMG]http://forum.exceliran.com/signaturepics/sigpic909_10.gif[/IMG]
                      [/CENTER]

                      کامنت

                      • 935007410

                        • 2018/07/27
                        • 14
                        • 20.00

                        #12
                        ممنونم

                        کامنت

                        چند لحظه..