جستجو

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

    • 2017/03/23
    • 558
    • 41.00

    پرسش جستجو

    سلام

    در فایل پیوست من میخوام جستجو را بر پایه تاریخ انجام بدم

    وقتی در
    TextBox1تاریخ را به سورت 1365/07/21 وارد کردم اطلاعات روبروی تاریخ در UserForm نمایش داده بشه

    من کد برای ان تهیه کردم مشکل اینجاست که من تعداد کارکتر های برای جستجو را برابر
    10 قرار میدم نتیجه ای نمیگرم ولی تعداد را روی 8 و تاریخ را بدون (/) وارد میکنم نتیجه درسته
    کد PHP:
    Private Sub TextBox1_Change()

    Find False

    kk 
    Range("A" Rows.Count).End(xlUp).Row 1

            TextBox2
    .Text ""
            
    TextBox3.Text ""
            
    TextBox4.Text ""
            
    TextBox5.Text ""
            
    TextBox6.Text ""
            
    TextBox7.Text ""

    For 2 To kk

    If Len(TextBox1) >= 10 And Val(TextBox1) = Val(Left(Range("A" i), Len(TextBox1))) Then

            TextBox2
    .Enabled False
            TextBox3
    .Enabled False
            TextBox4
    .Enabled False
            TextBox5
    .Enabled False
            TextBox6
    .Enabled False
            TextBox7
    .Enabled False

                    TextBox2
    .Text Range("b" i).Value

            TextBox3
    .Text Range("c" i).Value
            TextBox4
    .Text Range("d" i).Value
            TextBox5
    .Text Range("e" i).Value
            TextBox6
    .Text Range("f" i).Value
            TextBox7
    .Text Range("g" i).Value
                Find 
    True
            
    Exit For
                 ElseIf 
    Find False And Len(TextBox1) >= 10 Then
                    End 
    If
                    
    Next
    End Sub 
    نکته من برای سلولها تاریخ از فرمت سل
    (##"/"##"/"####) استفاده کردم

    در شیت دو از فرمت سل استفاده نکردم درست عمل میکنه
    Click image for larger version

Name:	002.png
Views:	1
Size:	45.6 کیلو بایت
ID:	148813
    لطفا شیت 3 را ببینید
    Click image for larger version

Name:	003.png
Views:	1
Size:	41.0 کیلو بایت
ID:	148814
    فایل های پیوست شده
    Last edited by میثم مقدم نیا; 2020/05/18, 00:10.
    [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]
  • majid_mx4

    • 2012/06/25
    • 699

    #2
    با سلام

    خدمت دوست عزیز جناب آقای مقدم نیا

    توجه داشته باشید :
    1- از آنجایی که فرمت خانه تاریخ ظاهر تاریخ است ولی در اصل عدد است پس حتما 8 حرف دارد نه 10 تا شما میتوانید بعد از انتخاب یک تاریخ در قسمت Fx تعداد آن و فرمت آن را ببیند.
    2- شما یا باید تاریخ را بدون اسلش در TextBox وارد کنید و دستورات خود را بر پایه آن بنویسد ویا اگر با اسلش وارد میکنید از دستور زیر استفاده کنید در واقع همسان سازی TextBox با فرمت سلول را انجام می دهید.
    کد:
    Private Sub TextBox1_Change()
    
    Find = False
    
    kk = Range("A" & Rows.Count).End(xlUp).Row + 1
    
            TextBox2.Text = ""
            TextBox3.Text = ""
            TextBox4.Text = ""
            TextBox5.Text = ""
            TextBox6.Text = ""
            TextBox7.Text = ""
    
    
    For i = 2 To kk
    
    If Len(Replace(TextBox1.Text, "/", "")) * 1 >= 8 And Val(Left(Range("A" & i), Len(Replace(TextBox1.Text, "/", "")) * 1)) Then
    
            TextBox2.Enabled = False
            TextBox3.Enabled = False
            TextBox4.Enabled = False
            TextBox5.Enabled = False
            TextBox6.Enabled = False
            TextBox7.Enabled = False
    
            
            TextBox2.Text = Range("b" & i).Value
            TextBox3.Text = Range("c" & i).Value
            TextBox4.Text = Range("d" & i).Value
            TextBox5.Text = Range("e" & i).Value
            TextBox6.Text = Range("f" & i).Value
            TextBox7.Text = Range("g" & i).Value
            
        Find = True
    
            Exit For
            
         ElseIf Find = False And Len(TextBox1) >= 10 Then
    
            
            End If
            
            Next
    End Sub
    پایدار باشید میر

    کامنت

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

      • 2017/03/23
      • 558
      • 41.00

      #3
      نوشته اصلی توسط majid_mx4
      با سلام

      خدمت دوست عزیز جناب آقای مقدم نیا

      توجه داشته باشید :
      1- از آنجایی که فرمت خانه تاریخ ظاهر تاریخ است ولی در اصل عدد است پس حتما 8 حرف دارد نه 10 تا شما میتوانید بعد از انتخاب یک تاریخ در قسمت Fx تعداد آن و فرمت آن را ببیند.
      2- شما یا باید تاریخ را بدون اسلش در TextBox وارد کنید و دستورات خود را بر پایه آن بنویسد ویا اگر با اسلش وارد میکنید از دستور زیر استفاده کنید در واقع همسان سازی TextBox با فرمت سلول را انجام می دهید.
      کد:
      Private Sub TextBox1_Change()
      
      Find = False
      
      kk = Range("A" & Rows.Count).End(xlUp).Row + 1
      
              TextBox2.Text = ""
              TextBox3.Text = ""
              TextBox4.Text = ""
              TextBox5.Text = ""
              TextBox6.Text = ""
              TextBox7.Text = ""
      
      
      For i = 2 To kk
      
      If Len(Replace(TextBox1.Text, "/", "")) * 1 >= 8 And Val(Left(Range("A" & i), Len(Replace(TextBox1.Text, "/", "")) * 1)) Then
      
              TextBox2.Enabled = False
              TextBox3.Enabled = False
              TextBox4.Enabled = False
              TextBox5.Enabled = False
              TextBox6.Enabled = False
              TextBox7.Enabled = False
      
              
              TextBox2.Text = Range("b" & i).Value
              TextBox3.Text = Range("c" & i).Value
              TextBox4.Text = Range("d" & i).Value
              TextBox5.Text = Range("e" & i).Value
              TextBox6.Text = Range("f" & i).Value
              TextBox7.Text = Range("g" & i).Value
              
          Find = True
      
              Exit For
              
           ElseIf Find = False And Len(TextBox1) >= 10 Then
      
              
              End If
              
              Next
      End Sub
      پایدار باشید میر

      سلام

      استاد میر ممنون از راهنمایتون.

      توی این کد که من الان چک کردم یک مشکل وجود داره اونم اینکه هر تاریخی را وارد میکنیم ردیف اول جدول را در یوزرفرم نمایش میده

      Click image for larger version

Name:	004.png
Views:	1
Size:	50.5 کیلو بایت
ID:	137777
      [HR][SIZE=5][COLOR="#0000FF"][FONT=Times New Roman][B] در سرزمینی کہ نتوان مردانہ زیست ، مردانہ مردن بهتر از این زندگیست [/B][/FONT][/COLOR][/SIZE][/HR]

      کامنت

      • majid_mx4

        • 2012/06/25
        • 699

        #4
        با سلام و عرض پوزش از بی توجهیم

        کد جدید تست و ارسال شد.

        کد:
        Private Sub TextBox1_Change()
        
        Find = False
        
        kk = Range("A" & Rows.Count).End(xlUp).Row + 1
        
                TextBox2.Text = ""
                TextBox3.Text = ""
                TextBox4.Text = ""
                TextBox5.Text = ""
                TextBox6.Text = ""
                TextBox7.Text = ""
        On Error Resume Next
        
        For Each cell In Range("a2:a" & kk)
        
        
        If cell.Value = Replace(TextBox1.Text, "/", "") * 1 And Len(Replace(TextBox1.Text, "/", "")) * 1 >= 8 And _
        Val(Left(cell.Value, Len(Replace(TextBox1.Text, "/", "")) * 1)) Then
        
                TextBox2.Enabled = False
                TextBox3.Enabled = False
                TextBox4.Enabled = False
                TextBox5.Enabled = False
                TextBox6.Enabled = False
                TextBox7.Enabled = False
        
                
                TextBox2.Text = Range("b" & cell.Row).Value
                TextBox3.Text = Range("c" & cell.Row).Value
                TextBox4.Text = Range("d" & cell.Row).Value
                TextBox5.Text = Range("e" & cell.Row).Value
                TextBox6.Text = Range("f" & cell.Row).Value
                TextBox7.Text = Range("g" & cell.Row).Value
                
            Find = True
        
              '  Exit For
                
             ElseIf Find = False And Len(TextBox1) >= 10 Then
        
                
                End If
                
                Next
        End Sub
        سلامت باشید میر

        کامنت

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

          • 2017/03/23
          • 558
          • 41.00

          #5
          نوشته اصلی توسط majid_mx4
          با سلام و عرض پوزش از بی توجهیم

          کد جدید تست و ارسال شد.

          کد:
          Private Sub TextBox1_Change()
          
          Find = False
          
          kk = Range("A" & Rows.Count).End(xlUp).Row + 1
          
                  TextBox2.Text = ""
                  TextBox3.Text = ""
                  TextBox4.Text = ""
                  TextBox5.Text = ""
                  TextBox6.Text = ""
                  TextBox7.Text = ""
          On Error Resume Next
          
          For Each cell In Range("a2:a" & kk)
          
          
          If cell.Value = Replace(TextBox1.Text, "/", "") * 1 And Len(Replace(TextBox1.Text, "/", "")) * 1 >= 8 And _
          Val(Left(cell.Value, Len(Replace(TextBox1.Text, "/", "")) * 1)) Then
          
                  TextBox2.Enabled = False
                  TextBox3.Enabled = False
                  TextBox4.Enabled = False
                  TextBox5.Enabled = False
                  TextBox6.Enabled = False
                  TextBox7.Enabled = False
          
                  
                  TextBox2.Text = Range("b" & cell.Row).Value
                  TextBox3.Text = Range("c" & cell.Row).Value
                  TextBox4.Text = Range("d" & cell.Row).Value
                  TextBox5.Text = Range("e" & cell.Row).Value
                  TextBox6.Text = Range("f" & cell.Row).Value
                  TextBox7.Text = Range("g" & cell.Row).Value
                  
              Find = True
          
                '  Exit For
                  
               ElseIf Find = False And Len(TextBox1) >= 10 Then
          
                  
                  End If
                  
                  Next
          End Sub
          سلامت باشید میر

          با سلام مجدد

          استاد میر جوابتون بسیار عالی و مفید بود

          من این کد را خواستم در فرم دیگر جایگذاری کنم ولی کد درست اجرا نشد

          شما ببیند با کدی که در
          TextBox1 برای فرمت تاریخ تعریف کردم مشکل داره یا نه

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

          کامنت

          • majid_mx4

            • 2012/06/25
            • 699

            #6
            با سلام
            ضمن تبریک عید فطر به جنابعالی و تمامی عزیزانی که به این پست سر میزنند.

            دوست عزیز فقط کافیست درکد زیر i را تغییر داده

            کد:
             TextBox2.Text = Range("C" & I).Value
            و به این شکل در آورید. توضیح اینکه این مقدار در دستورات تعریف نشده که بتواند مقدار برگرداند مقدار Cell مقدار تعریف شده است .

            کد:
             TextBox2.Text = Range("C" & cell.Row).Value

            پایدار باشید میر

            کامنت

            چند لحظه..