آموزش فیلتر داده ها بر مبنای چند محدودیت اختیاری و نمایش در لیست باکس

Collapse
این تاپیک یک تاپیک مهم است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #16
    تنها ترفند به کار رفته در فایل همین بوده که خدمت شما ارائه شد
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • 4017

      • 2010/10/03
      • 114

      #17
      نوشته اصلی توسط ~M*E*H*D*I~
      تنها ترفند به کار رفته در فایل همین بوده که خدمت شما ارائه شد
      بله كاملا درسته. بايد ستونها رو جابجا كنم
      ممنون از صبر و وقتي كه برام گذاشتين
      [color=#1e90ff]اگر تنهاترين تنهايان شوم بازهم خدا هست،
      او جانشين تمام نداشته هاي من است...![/color]

      کامنت

      • generalsamad
        مدير تالار توابع

        • 2014/06/22
        • 1496

        #18
        سلام دوستان
        اولین باره فرم میسازم
        ایراد این فرم چیه؟
        خطاش اینه
        کد:
        Sub subfilter(srtfill As String)
        rsReserve.Filter = srtfill
        End Sub
        فایل های پیوست شده
        [CENTER]
        [SIGPIC][/SIGPIC]
        [/CENTER]

        کامنت

        • khakzad

          • 2010/03/17
          • 2034
          • 85.00

          #19
          سلام
          میشه بفرمایید این فرم چکار میکنه و مشکل کجاست؟
          این کدی که گذاشتید که خطا نیست.
          بفرمایید در اجرای کدوم قسمت روی این کد خطا میده
          [CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:

          [URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
          [URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
          :wcom:

          [B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
          [EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
          [/CENTER]

          کامنت

          • generalsamad
            مدير تالار توابع

            • 2014/06/22
            • 1496

            #20
            این فرم عمل جستجو رو انجام میده
            هر کدوم از فیلداش پر بشه باید تو جدول جستجو کنه و مشخصات فیلد پر شده رو در لیست باکس بیاره
            طبق راهنمائی های ~M*E*H*D*I~ جلو رفتم اما چون بار اولم هست فرم میسازم جواب نداد.
            [CENTER]
            [SIGPIC][/SIGPIC]
            [/CENTER]

            کامنت

            • generalsamad
              مدير تالار توابع

              • 2014/06/22
              • 1496

              #21
              مشکلی که داشتم حل شد
              حواسم نبود اسم تکست باکس ها رو با سرستونها عوض کنم
              فایل های پیوست شده
              [CENTER]
              [SIGPIC][/SIGPIC]
              [/CENTER]

              کامنت

              • generalsamad
                مدير تالار توابع

                • 2014/06/22
                • 1496

                #22
                با سلام
                دوستان من میخوام برای جستجوی این فرم شرط بذارم
                شرطی که میخوام بذارم اینه که مثلا اگه در فیلد نام تایپ کرد علی توی جدول هر نامی که علی توش باشه مثل محمد علی یا علی یار باشه رو تو لیست باکس بیاره
                برای نام خانوادگی هم همینطور
                دستور sql رو بلدم ولی نمیدونم چه جور باید تو این فرم استفادش کرد
                کد:
                [COLOR=#666666][FONT=Tahoma]where name,family like '*" & str & "*'[/FONT][/COLOR]
                شاید هم اشتباه باشه
                دوستان هر کس میتونه کمک کنه
                ممنون
                [CENTER]
                [SIGPIC][/SIGPIC]
                [/CENTER]

                کامنت

                • ozviat83

                  • 2015/01/28
                  • 32

                  #23
                  کمک

                  با سلام خسته نباشید
                  اگر امکان تمام قسمت های این کد را برام توضیح بدید ممنون میشم
                  تو اینترنت هر چی گشتم چیزی پیدا نکردم
                  راستش میخواهم با همین کدهایی که دادید که فیلتر درست کنم با این تفاوت که تعداد ستون ها و ردیف های بیشتری داره
                  Private Sub filllistbox()

                  Dim I As Integer, J As Integer

                  With ListBox1

                  .BoundColumn = 1
                  .ColumnCount = rsReserve.Fields.Count
                  .ColumnHeads = False
                  .ColumnWidths = ""
                  .ControlSource = ""
                  .RowSource = ""
                  .Clear
                  I
                  = 0

                  If Not rsReserve.BOF Then rsReserve.MoveFirst
                  If rsReserve.EOF = True Then
                  MsgBox
                  "this record nor exist"
                  End If
                  Do
                  Until rsReserve.EOF
                  I
                  = I + 1
                  .AddItem
                  For J = 1 To .ColumnCount
                  .List(I - 1, J - 1) = rsReserve.Fields(J - 1).Value
                  Next J
                  rsReserve
                  .MoveNext
                  Loop
                  End With


                  کامنت

                  • ~M*E*H*D*I~
                    • 2011/10/19
                    • 4377
                    • 70.00

                    #24
                    نوشته اصلی توسط ozviat83
                    با سلام خسته نباشید
                    اگر امکان تمام قسمت های این کد را برام توضیح بدید ممنون میشم
                    تو اینترنت هر چی گشتم چیزی پیدا نکردم
                    راستش میخواهم با همین کدهایی که دادید که فیلتر درست کنم با این تفاوت که تعداد ستون ها و ردیف های بیشتری داره
                    Private Sub filllistbox()

                    Dim I As Integer, J As Integer

                    With ListBox1

                    .BoundColumn = 1
                    .ColumnCount = rsReserve.Fields.Count
                    .ColumnHeads = False
                    .ColumnWidths = ""
                    .ControlSource = ""
                    .RowSource = ""
                    .Clear
                    I
                    = 0

                    If Not rsReserve.BOF Then rsReserve.MoveFirst
                    If rsReserve.EOF = True Then
                    MsgBox
                    "this record nor exist"
                    End If
                    Do
                    Until rsReserve.EOF
                    I
                    = I + 1
                    .AddItem
                    For J = 1 To .ColumnCount
                    .List(I - 1, J - 1) = rsReserve.Fields(J - 1).Value
                    Next J
                    rsReserve
                    .MoveNext
                    Loop
                    End With



                    مباحثی که در این کدها مطرح شده مربوط به ADO هست که خودش یک مبحث مفصل و طولانیه ، برای فیلتر با تعدا بیشتر ستون نیازی به دستکاری کدها نیست کافیه به نکته زیر عمل کنید


                    هر تکست باکس می بایست نام ستون متناظر خود در شیت اکسل را به اضافه حروف flt در پایان آن داشته باشد به عنوان مثال ستون نام در شیت به fname نامگذاری شده است پس تکست باکس آن را با fnameflt نام گذاری کنید.
                    [CENTER]
                    [SIGPIC][/SIGPIC]
                    [/CENTER]

                    کامنت

                    • ozviat83

                      • 2015/01/28
                      • 32

                      #25
                      این کار را کردم ولی به ارور میده که مربوط به خط
                      List(I - 1, J - 1) = rsReserve.Fields(J - 1).Value
                      هست
                      Last edited by ozviat83; 2015/01/31, 14:51. دلیل: اضافه کردن پیوست

                      کامنت

                      • ozviat83

                        • 2015/01/28
                        • 32

                        #26
                        این کار را کردم ولی به ارور میده که مربوط به خط
                        List(I - 1, J - 1) = rsReserve.Fields(J - 1).Value
                        هست

                        کامنت

                        • ozviat83

                          • 2015/01/28
                          • 32

                          #27
                          کمـــــــــــــــــــــــ ــــــــــــــــک

                          کمـــــــــــــــــــــــــــــــــــــــک
                          این کار را کردم ولی به ارور میده که مربوط به خط
                          List(I - 1, J - 1) = rsReserve.Fields(J - 1).Value
                          هست

                          الان همون فایل را پیوست کردن تا ببینید
                          لطفا کمکم کنید
                          فایل های پیوست شده

                          کامنت

                          • ozviat83

                            • 2015/01/28
                            • 32

                            #28
                            datafilter(1) -.xlsm
                            تو این فایل که پیوست زدم ستون آخر را ضافه کردم که هنگامی که میخوام فیلتر را اعمال کنم ارور میده

                            کامنت

                            • javad_khosravi

                              • 2016/10/03
                              • 12

                              #29
                              سلام ببخشید میخواستم سلولهای تکراری از یک ستون رو در commbobox بدون حذف اون سلول ها انجام بدم و سلولهای خال انتخاب شده هم در کمبو باکس نمایش داده نشه همانند تکراری ها.ممنون میشم راهنماییم کنین.

                              کامنت

                              • iranweld

                                • 2015/03/29
                                • 3341

                                #30
                                با سلام

                                راه اول با استفاده از Advance fillter یک لیست بدون تکرار از لیست خود ایجاد کنید و سپس آنها را به کمبوباکس ارتباط دهید


                                کد PHP:
                                Private Sub UserForm_Initialize()

                                Z1 Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row
                                    Application
                                .CutCopyMode False
                                    Range
                                ("A1:A" Z1).AdvancedFilter Action:=xlFilterInPlaceUnique:=False
                                    Range
                                ("A1:A" Z1).AdvancedFilter Action:=xlFilterCopyCopyToRange:=Range_
                                        
                                "B1"), Unique:=True
                                        
                                        Z2 
                                Sheet1.Cells(Sheet1.Rows.Count"B").End(xlUp).Row
                                        
                                        
                                For 2 To Z2
                                        
                                        ComboBox1
                                .AddItem Range("B" I)
                                        
                                        
                                Next

                                End Sub 
                                راه دوم با استفاده از Collection یک لیست بدون تکرار و خالی در حافظه ایجاد کنید و سپس به کمبوباکس ارتباط دهید
                                فایل های پیوست شده
                                Last edited by iranweld; 2016/10/04, 19:58.

                                کامنت

                                چند لحظه..