ایجاد لیست Data Validation به صورت غیر تکراری و با در نظر گرفتن شرط ها

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

    • 2014/04/09
    • 347
    • 45.00

    ایجاد لیست Data Validation به صورت غیر تکراری و با در نظر گرفتن شرط ها

    نیاز به لیست Data validation دارم که به تاثیر گرفتن از دو شرط مورد نظر در سلول های متناظرشون تغییر کنند و غیر تکراری هم باشد.
    توضیحات تکمیلی در فایل ضمیمه موجود است.
    فایل های پیوست شده
    :min10::min18::min13::min22:
  • hadi1980

    • 2019/01/07
    • 237
    • 86.00

    #2
    سلام
    سوالتان خيلي قشنگ بود و از حل اون هم لذت بردم هم کلي چيز يادآوري شد برام
    جوابتان رو روي همون فايل خودتون کدنويسي کردم و ضميمه شد
    موفق باشيد
    هادي
    فایل های پیوست شده

    کامنت

    • sabertb

      • 2014/04/09
      • 347
      • 45.00

      #3
      نوشته اصلی توسط hadi1980
      سلام
      سوالتان خيلي قشنگ بود و از حل اون هم لذت بردم هم کلي چيز يادآوري شد برام
      جوابتان رو روي همون فايل خودتون کدنويسي کردم و ضميمه شد
      موفق باشيد
      هادي
      سلام خدمت شما در صورتی که فایل اصلی ما دارای این موارد باشد کد نویسی شما چه تغییری میکند ؟
      ستون دیتا های تکراری از V2 شروع میشه تا انتها
      ستونی که می بایست Data validation داخلش ایجاد بشه از D5 شروع میشه تا انتها
      ستونی که شرط اول رو دارا می باشد E5 تا انتها
      ستونی که شرط دوم را دارد G5 تا انتها می باشد

      من کد شمارو تغییر دادم ولی جواب نمی ده لطفا بفرمایید کجای کارم مشکل داره

      کد:
      Sub validation()'first: erase all validation
      Cells.validation.Delete
          
      For j = 2 To Range("E5").End(xlDown).Row
          st_temp = ""
          For i = 2 To Range("V2").End(xlDown).Row
              If (InStr(1, Cells(i, 22), Cells(j, 5)) <> 0) Then
                  If (InStr(1, Cells(i, 22), Cells(j, 7)) <> 0) Then
                      If (st_temp = "") Then
                          st_temp = Cells(i, 22)
                      Else
                          st_temp = st_temp & "," & Cells(i, 22)
                      End If
                  End If
              End If
          Next
          
          Range("D" & j).validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Formula1:=st_temp
      Next
      
      
      End Sub
      :min10::min18::min13::min22:

      کامنت

      • hadi1980

        • 2019/01/07
        • 237
        • 86.00

        #4
        سلام مجدد
        فايل جديدتون رو بگذاريد تا بررسي کنم اينجوري سخت تره
        و البته چون خيلي زمان گذشته اصلا يادم نيست تو برنامه‌ام چه خبره واقعا

        کامنت

        چند لحظه..