سوال در مورد وارد کردن تاریخ

Collapse
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • میثم مقدم نیا

    • 2017/03/23
    • 558
    • 41.00

    پرسش سوال در مورد وارد کردن تاریخ

    سلام
    دوستان من در تکست باکس میخوام تاریخ وارد کنم خودم یه ماکرو نوشتم که فقط عدد وارد میشه و ۱۰ رقم عدد که ۸ تا برای عدد و ۲ تا هم برای / هست قرار دادم مشکل من اینجاست که میخوام وقتی تاریخ صحیح نبود مثلا اگه تاریخ را ۱۳۹۵/۲۳/۲۳ وارد کردم پیغام خطا بده واطلاعات ثبت نشه
    [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]
  • rasools13

    • 2017/01/20
    • 360
    • 80.00

    #2
    با سلام
    از کدهای ذیل در رویداد YourTextBoxName_Change() استفاده کنید

    به جای TextBox1 نام تکست باکس خودتون رو قرار دهید

    .
    کد PHP:
    Private Sub TextBox1_Change()
        
    Dim txttxtA As Variant
        txt 
    Me.TextBox1.Text
        
    If Len(txt) = 8 Then
            txtA 
    Mid(txt62)
            If 
    CInt(txtA) > 12 Then
                MsgBox 
    ("مقدار ماه حد اکثر 12 است")
                
    Me.TextBox1.Text Mid(txt15)
                Exit 
    Sub
            End 
    If
        ElseIf 
    Len(txt) = 10 Then
            txtA 
    Mid(txt92)
            If 
    CInt(txtA) > 31 Then
                MsgBox 
    ("مقدار روز حد اکثر 31 است")
                
    Me.TextBox1.Text Mid(txt18)
                Exit 
    Sub
            End 
    If
        
    End If
    End Sub 
    [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
    [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
    [/CENTER]

    کامنت

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

      • 2017/03/23
      • 558
      • 41.00

      #3
      نوشته اصلی توسط rasools13
      با سلام
      از کدهای ذیل در رویداد YourTextBoxName_Change() استفاده کنید

      به جای TextBox1 نام تکست باکس خودتون رو قرار دهید

      .
      کد PHP:
      Private Sub TextBox1_Change()
          
      Dim txttxtA As Variant
          txt 
      Me.TextBox1.Text
          
      If Len(txt) = 8 Then
              txtA 
      Mid(txt62)
              If 
      CInt(txtA) > 12 Then
                  MsgBox 
      ("مقدار ماه حد اکثر 12 است")
                  
      Me.TextBox1.Text Mid(txt15)
                  Exit 
      Sub
              End 
      If
          ElseIf 
      Len(txt) = 10 Then
              txtA 
      Mid(txt92)
              If 
      CInt(txtA) > 31 Then
                  MsgBox 
      ("مقدار روز حد اکثر 31 است")
                  
      Me.TextBox1.Text Mid(txt18)
                  Exit 
      Sub
              End 
      If
          
      End If
      End Sub 
      سلام
      آقا رسول ممنون از راهنمایتون من با کمی تغییرات در کد شما به نتیجه مورد نظرم رسید ولی در قسمت ماه هنوز مشکل دارم دستور خوب عمد نمیکنه نمونه براتون پیوست میکنم یه نگاهی بهش بندازید ببینید میشه کاریش کرد
      کد PHP:
      Private Sub TextBox1_Change()
          If 
      Len(TextBox3.Value) = 8 Then TextBox3.Value Format(TextBox3.Value"####/##/##")
          
      Dim txttxtA As Variant
          txt 
      Me.TextBox1.Text
          
      If Len(txt) = 7 Then
              txtA 
      Mid(txt62)
              If 
      CInt(txtA) > 12 Then
                  MsgBox 
      ("مقدار ماه حد اکثر 12 است")
                  
      Me.TextBox1.Text Mid(txt15)
                  Exit 
      Sub
              End 
      If
          ElseIf 
      Len(txt) = 10 Then
              txtA 
      Mid(txt92)
              If 
      CInt(txtA) > 31 Then
                  MsgBox 
      ("مقدار روز حد اکثر 31 است")
                  
      Me.TextBox1.Text Mid(txt18)
                  Exit 
      Sub 
      فایل های پیوست شده
      Last edited by میثم مقدم نیا; 2017/04/13, 21:32.
      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

      کامنت

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

        • 2017/03/23
        • 558
        • 41.00

        #4
        ممنون میشم جوابم را بدین
        [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

        کامنت

        • rasools13

          • 2017/01/20
          • 360
          • 80.00

          #5
          با سلام دوباره
          کد ذیل رو جایگزین کنید
          .
          کد PHP:
          Private Sub TextBox3_Change()
              
          With Application.WorksheetFunction
                  Dim txt
          txtA As Variant
                  txt 
          Me.TextBox3.Text
                  
          If Len(txt) <> 8 Then Me.TextBox3.Text = .Substitute(txt"/""")
                  If 
          Len(txt) = 8 Then
                      txtA 
          Mid(txt52)
                      If 
          CInt(txtA) > 12 Then
                          MsgBox 
          ("مقدار ماه حد اکثر 12 است")
                          
          Me.TextBox3.Text Mid(txt14)
                          Exit 
          Sub
                      End 
          If
                      
          txtA Mid(txt72)
                      If 
          CInt(txtA) > 31 Then
                          MsgBox 
          ("مقدار روز حد اکثر 31 است")
                          
          Me.TextBox3.Text Mid(txt16)
                          Exit 
          Sub
                      End 
          If
                      
          TextBox3.Text Format(TextBox3.Text"####/##/##")
                  
          End If
              
          End With
          End Sub 
          .
          [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
          [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
          [/CENTER]

          کامنت

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

            • 2017/03/23
            • 558
            • 41.00

            #6
            نوشته اصلی توسط rasools13
            با سلام دوباره
            کد ذیل رو جایگزین کنید
            .
            کد PHP:
            Private Sub TextBox3_Change()
                
            With Application.WorksheetFunction
                    Dim txt
            txtA As Variant
                    txt 
            Me.TextBox3.Text
                    
            If Len(txt) <> 8 Then Me.TextBox3.Text = .Substitute(txt"/""")
                    If 
            Len(txt) = 8 Then
                        txtA 
            Mid(txt52)
                        If 
            CInt(txtA) > 12 Then
                            MsgBox 
            ("مقدار ماه حد اکثر 12 است")
                            
            Me.TextBox3.Text Mid(txt14)
                            Exit 
            Sub
                        End 
            If
                        
            txtA Mid(txt72)
                        If 
            CInt(txtA) > 31 Then
                            MsgBox 
            ("مقدار روز حد اکثر 31 است")
                            
            Me.TextBox3.Text Mid(txt16)
                            Exit 
            Sub
                        End 
            If
                        
            TextBox3.Text Format(TextBox3.Text"####/##/##")
                    
            End If
                
            End With
            End Sub 
            .
            با سلام مجدد
            آقا رسول من این کدی که دادید را امتحان کردم باز جواب نداد ولی کد اولی را یکم دسکاریش کردم مشکل حل شد

            کد PHP:
            Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
            If (
            KeyAscii 47 And KeyAscii 58Then
                    KeyAscii 
            KeyAscii
                
            Else
                    
            KeyAscii 0
                End 
            If
            End Sub


            Private Sub TextBox1_Change()
            If 
            Len(TextBox3.Value) = 8 Then TextBox3.Value Format(TextBox3.Value"####/##/##")
                
            Dim txttxtA As Variant
                txt 
            Me.TextBox1.Text
                
            If Len(txt) = 6 Then
                    txtA 
            Mid(txt52)
                    If 
            CInt(txtA) > 12 Then
                        MsgBox 
            ("مقدار ماه حد اکثر 12 است")
                        
            Me.TextBox1.Text Mid(txt14)
                        Exit 
            Sub
                    End 
            If
                ElseIf 
            Len(txt) = 10 Then
                    txtA 
            Mid(txt92)
                    If 
            CInt(txtA) > 31 Then
                        MsgBox 
            ("مقدار روز حد اکثر 31 است")
                        
            Me.TextBox1.Text Mid(txt18)
                        Exit 
            Sub
                    End 
            If
                
            End If
            End Sub 
            Last edited by میثم مقدم نیا; 2017/04/13, 21:33.
            [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

            کامنت

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

              • 2017/03/23
              • 558
              • 41.00

              #7
              سلام آقا رسول من با یه مشکلی در وارد کردن تاریخ روبرو شدم من محدوده تاریخ را به ۱۰ عدد محدود کردم ولی اکه تعداد اعداد وارد شده کمتر از حد مجاز باشن میخوام پیام خطا بده
              [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

              کامنت

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

                • 2017/03/23
                • 558
                • 41.00

                #8
                با سلام
                سوال آخرم در مورد تاریخ تا اینجا من به کمک شما اساتید عزیز تونستم مشکلم را حل کنم
                آیا امکانش هست مثل روز و ماه ، سال را هم محدود کرد که کاربر فقط از سال مشخص شده استفاده کند مثلا از سال ۱۳۹۵ تا ۱۴۰۰ یعنی اگر خارج از این محدوده بود پیام خطا بدهد
                ممنون از شما اساتید عزیز
                Last edited by میثم مقدم نیا; 2017/04/29, 15:30.
                [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                کامنت

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

                  • 2017/03/23
                  • 558
                  • 41.00

                  #9
                  سلام
                  راه حلی برای این سوال نبود
                  لطفاً اگه کسی چیز میدونه راهنماییم کنه
                  [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                  کامنت

                  • rasools13

                    • 2017/01/20
                    • 360
                    • 80.00

                    #10
                    سلام
                    کد ذیل رو در آخرین خط رویداد TextBox1_Change() کپی کنید
                    .
                    کد PHP:
                    If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then msgbox("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"
                    [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
                    [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
                    [/CENTER]

                    کامنت

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

                      • 2017/03/23
                      • 558
                      • 41.00

                      #11
                      نوشته اصلی توسط rasools13
                      سلام
                      کد ذیل رو در آخرین خط رویداد TextBox1_Change() کپی کنید.
                      کد PHP:
                      If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then msgbox("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"
                      با سلام مجددآقا رسول من کد شما را در کد TextBox4_Change()قرار دادم ولی در هنگام تایپ عدد پیغام هی میاد مثل عدد 1 را میزنم پیغام میادش بعدشم عدد 3 را میزنم بازم پیغام میاد یعنی اینکه مثلا 1393 را کامل نکرده هی پیغام میده امید وارم که تونسته باشم منظورم را خوب رسونده باشم
                      کد PHP:
                      Private Sub TextBox4_Change()
                          If 
                      Len(TextBox4.Value) = 8 Then TextBox4.Value Format(TextBox4.Value"####/##/##")
                          
                      Dim txttxtA As Variant
                          txt 
                      Me.TextBox4.Text
                              
                      If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then MsgBox "مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"vbMsgBoxRight"تاريخ اشتباه است              "
                          
                      If Len(txt) = 6 Then
                              txtA 
                      Mid(txt52)
                              If 
                      CInt(txtA) > 12 Then
                                  MsgBox 
                      "مقدار ماه حد اکثر 12 است"vbMsgBoxRight"تاريخ اشتباه است       "
                                  
                      Me.TextBox4.Text Mid(txt14)
                                  Exit 
                      Sub
                              End 
                      If
                          ElseIf 
                      Len(txt) = 10 Then
                              txtA 
                      Mid(txt92)
                              If 
                      CInt(txtA) > 31 Then
                                  MsgBox 
                      "مقدار روز حد اکثر 31 است"vbMsgBoxRight"تاريخ اشتباه است       "
                                  
                      Me.TextBox4.Text Mid(txt18)
                                  Exit 
                      Sub
                              End 
                      If
                          
                      End If
                      End Sub 
                      Last edited by میثم مقدم نیا; 2017/05/01, 15:42.
                      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                      کامنت

                      • rasools13

                        • 2017/01/20
                        • 360
                        • 80.00

                        #12
                        سلام
                        کد رو داخل یک if به صورت ذیل قرار بدین
                        کد PHP:

                         
                        If Len(txt) = 5 Then
                                
                        If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then msgbox("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"
                            
                        End If 
                        [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
                        [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
                        [/CENTER]

                        کامنت

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

                          • 2017/03/23
                          • 558
                          • 41.00

                          #13
                          نوشته اصلی توسط rasools13
                          سلام
                          کد رو داخل یک if به صورت ذیل قرار بدین
                          کد PHP:

                           
                          If Len(txt) = 5 Then
                                  
                          If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then msgbox("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"
                              
                          End If 
                          با سلام مجدد
                          این را وارد کردم درست عمل میکنه ولی در صورت اشتباه تاریخ را خالی نمیکنه
                          من دستور Me.TextBox4.Text=Mid(tet, 1,0) را اضافه کردم ولی تاریخ را درست هم وارد میکنم باز اون را خالی میکنه
                          [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                          کامنت

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

                            • 2017/03/23
                            • 558
                            • 41.00

                            #14
                            نوشته اصلی توسط rasools13
                            سلام
                            کد رو داخل یک if به صورت ذیل قرار بدین
                            کد PHP:

                             
                            If Len(txt) = 5 Then
                                    
                            If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then msgbox("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود"
                                
                            End If 
                            با سلام مجدد
                            این را وارد کردم درست عمل میکنه ولی در صورت اشتباه تاریخ را خالی نمیکنه
                            من دستور Me.TextBox4.Text=Mid(tet, 1,0) را اضافه کردم ولی تاریخ را درست هم وارد میکنم باز اون را خالی میکنه
                            [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

                            کامنت

                            • rasools13

                              • 2017/01/20
                              • 360
                              • 80.00

                              #15
                              سلام
                              به صورت ذیل اصلاحش کنید
                              ..
                              کد PHP:
                               If Len(txt) = 5 Then 
                                      
                              If CInt(Mid(txt14)) < 1395 Or CInt(Mid(txt14)) > 1400 Then 
                              msgbox
                              ("مقدار سال حداقل 1395 و حد اکثر 1400 انتخاب شود" 
                                  
                              Me.TextBox4.Text ""
                              End If
                                  
                              End If 
                              .. ,ولی اگر در صورت اشتباه کادر تاریخ رو خالی نکنید بهتره چون این باعث نارضایتی کاربر شده و اینکه پاک نکردن باعث میشه کاربر بفهمه کدوم قسمت رو اشتباه نوشته
                              [CENTER][B]بهترین راه ذخیره زمان(یادگیری)،،حل مشکلات دیگران است
                              [COLOR=#0000ff]مشکلات دیگران، روزی مشکلات ما هم خواهد شد[/COLOR][/B][COLOR=#ff0000][B][FONT=arial][/FONT][/B][/COLOR]
                              [/CENTER]

                              کامنت

                              چند لحظه..