سوال در خصوص جمع اتوماتیک ساعت ها در یوزرفرم

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

    • 2015/06/01
    • 7

    سوال در خصوص جمع اتوماتیک ساعت ها در یوزرفرم

    سلام
    دوستان کسی می تونه در دو مورد زیر منو راهنمایی کنه:
    1. چطور می تونم مشخص کنم هر سلول از چه نوع داده ای باید باشه؟ مثلا در فایل پیوست فرمت داده ها ورودی ساعت باشه hh:mm
    2. چطور می تونم ساعت ها رو با هم جمع و در آخرین باکس نمایش بدم؟ (همزمان با تکمیل باکس ها)

    ممنونمsum_time.zip
  • ordouei

    • 2013/05/01
    • 68
    • 45.00

    #2
    با سلام
    ورود اطلاعات ساعت و دقیقه و (ثانیه - اختیاری) با ( . ) ممیز میباشد . یعنی 1.2 یا ( 1.02 ) یک ساعت و 2 دقیقه
    و1.20 یک ساعت و بیست دقیقه
    کد PHP:
     Private Sub TextBox1_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub       If TextBox3.Value "" Then Exit Sub        TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub Private Sub TextBox2_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub      If TextBox3.Value "" Then Exit Sub    TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End SubPrivate Sub TextBox3_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub      If TextBox3.Value "" Then Exit Sub    TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub Private Sub TextBox4_Change()

        If 
    TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub       If TextBox3.Value "" Then Exit Sub    If TextBox4.Value "" Then Exit Sub        TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub 

    کامنت

    • DOLFIN

      • 2014/01/18
      • 149

      #3
      سلام
      در جواب سوال یک می تونید از این کد استفاده کنید :
      کد:
      Private Sub t1_AfterUpdate()
      Dim tString As String
      Dim tDate As Date
      On Error GoTo ErrMsg
      With t1
          
         If InStr(1, .Value, ":", vbTextCompare) = 0 Then
              
             tString = Format(.Value, "0000")
              tDate = TimeSerial(Left(tString, 2), Right(tString, 2), 0)
             
              t1.Value = Format(tDate, "HH:MM")
          Else
              
             .Value = Format(.Value, "hh:mm")
          End If
      End With
      Exit Sub
      ErrMsg:
      MsgBox "", vbOKOnly, ""
      End Sub
      [CENTER][FONT=times new roman][SIZE=7][I][B][COLOR=#0000ff] خانه اکسل - [url]http://excelhouse.blog.ir[/url][/COLOR][/B][/I][/SIZE]
      [/FONT][/CENTER]

      کامنت

      • mr_daryani

        • 2015/06/01
        • 7

        #4
        نوشته اصلی توسط DOLFIN
        سلام
        در جواب سوال یک می تونید از این کد استفاده کنید :
        کد:
        Private Sub t1_AfterUpdate()
        Dim tString As String
        Dim tDate As Date
        On Error GoTo ErrMsg
        With t1
            
           If InStr(1, .Value, ":", vbTextCompare) = 0 Then
                
               tString = Format(.Value, "0000")
                tDate = TimeSerial(Left(tString, 2), Right(tString, 2), 0)
               
                t1.Value = Format(tDate, "HH:MM")
            Else
                
               .Value = Format(.Value, "hh:mm")
            End If
        End With
        Exit Sub
        ErrMsg:
        MsgBox "", vbOKOnly, ""
        End Sub


        با تشکر
        در مورد سه خونه اول بعد از تایپ تبدیل به ساعت می شه، اما در خصوص خانه پاسخ (چهارم) جواب نداد

        کامنت

        • mr_daryani

          • 2015/06/01
          • 7

          #5
          نوشته اصلی توسط ordouei
          با سلام
          ورود اطلاعات ساعت و دقیقه و (ثانیه - اختیاری) با ( . ) ممیز میباشد . یعنی 1.2 یا ( 1.02 ) یک ساعت و 2 دقیقه
          و1.20 یک ساعت و بیست دقیقه
          کد PHP:
           Private Sub TextBox1_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub       If TextBox3.Value "" Then Exit Sub        TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub Private Sub TextBox2_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub      If TextBox3.Value "" Then Exit Sub    TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End SubPrivate Sub TextBox3_Change()    If TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub      If TextBox3.Value "" Then Exit Sub    TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub Private Sub TextBox4_Change()

              If 
          TextBox1.Value "" Then Exit Sub    If TextBox2.Value "" Then Exit Sub       If TextBox3.Value "" Then Exit Sub    If TextBox4.Value "" Then Exit Sub        TextBox4.Value CDate(TextBox1.Value) + CDate(TextBox2.Value) + CDate(TextBox3.Value)End Sub 
          با تشکر از شما
          متاسفانه نتونستم از این کدها استفاده کنم، امکانش هست به صورت فایل ارسال بفرمایید. (در قسمت های مختلف خطا می ده)

          کامنت

          • ordouei

            • 2013/05/01
            • 68
            • 45.00

            #6
            متاسفانه فایل پیوست نشد .
            در صورت سوال بیشتر یا دریافت فایل ایمیل بزنید .
            Excel.saeed@gmail.com
            فایل های پیوست شده

            کامنت

            • mr_daryani

              • 2015/06/01
              • 7

              #7
              نوشته اصلی توسط ordouei
              متاسفانه فایل پیوست نشد .
              در صورت سوال بیشتر یا دریافت فایل ایمیل بزنید .
              Excel.saeed@gmail.com
              با سپاس فراوان

              اما مشکلات و خطا ها همچنان پابرجاست مواردی مثل ذیل:
              1. در صورت استفاده از کارکتر ( : ) توسط کاربر به اشتباه خطا داده و از برنامه خارج می شود.
              2. در صورتی که مثلا به جای 8.0 از 8 استفاده شود، جمع به صورت تاریخ نمایش داده می شود
              3. در صورتی که کاربر اشتباه ساعت را وارد کند مثلا 1.70 باز هم جمع به صورت تاریخ نمایش داده می شود.

              البته موارد فوق همه مربوط به کاربر استفاده کننده از فرم می باشد. هیچ راهی وجود نداره که بشه جلوی این خطاها رو گفت؟

              کامنت

              • mr_daryani

                • 2015/06/01
                • 7

                #8
                بزرگواران، هیچ کس نمی تونه پاسخ این سوال رو بده؟!؟!؟!؟

                کامنت

                چند لحظه..