کمبو باکس بدون تکرار

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

    • 2011/12/07
    • 272

    کمبو باکس بدون تکرار

    سلام به دوستای عزیز
    من یه ستون از داده ها دارم که توش داده های تکراری هس تو محیط اکسل نمیخوام داده ها یونیک بشن می خوام یه فرم بسازم با یه کمبو باکس که از طریق کد نویسی داده های تکراری تشخیص داده بشه و لیستی که نشون داده میشه یونیک باشه
    [color=#FF0000]در روزگاری که لبخند ادمها بخاطر شکست توست برخیز تا بگریند[/color]
  • ~M*E*H*D*I~
    • 2011/10/19
    • 4377
    • 70.00

    #2
    RE: کمبو باکس بدون تکرار

    سلام
    شما باید داده ها رو تو یه ارایه بریزی بعد با دوتا متغیر تو حلقه forاونهارو مقایسه کنی و غیر تکراری هارو تو یه ارایه دیگه ذخیره کنی بعد این ارایه رو به کمبو باکس اضافه کنی
    [CENTER]
    [SIGPIC][/SIGPIC]
    [/CENTER]

    کامنت

    • Javid Mokhtari
      مدير تالار ويژوال بيسيك

      • 2012/01/16
      • 1212
      • 73.00

      #3
      RE: کمبو باکس بدون تکرار

      با سلام.

      [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
      بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

      شرکت در دوره:
      [/FONT][/SIZE]
      [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
      [/B][/FONT][/SIZE]
      [/CENTER]
      [/INDENT]
      [/FONT]

      کامنت

      • shamsololama

        • 2010/02/15
        • 940

        #4
        RE: کمبو باکس بدون تکرار

        نوشته اصلی توسط mahasa shayesteh
        سلام به دوستای عزیز
        من یه ستون از داده ها دارم که توش داده های تکراری هس تو محیط اکسل نمیخوام داده ها یونیک بشن می خوام یه فرم بسازم با یه کمبو باکس که از طریق کد نویسی داده های تکراری تشخیص داده بشه و لیستی که نشون داده میشه یونیک باشه
        با درود فراوان

        با تشکر از دوست خوبم jansiz hayat ازجواب خوب و کاملشون
        این هم یک نمونه برای حذف تکراری از کمبو باکس


        Private Sub UserForm_Initialize()
        Dim n
        Dim c As Range
        Dim i As Integer
        ComboBox1.AddItem Sheet1.Range("A1").Value
        For Each c In Sheet1.Range("A1:A1000")

        n = fals
        If c.Value <> "" Then
        For i = 0 To ComboBox1.ListCount - 1

        If ComboBox1.List(i, 0) = c.Text Then
        ' MsgBox (ComboBox1.List(i, 0)) & "-" & c.Value
        n = True
        GoTo point1:
        End If
        Next i
        If n = flase Then
        ComboBox1.AddItem c.Value
        End If
        End If
        point1:
        Next c
        End Sub



        فایل نمونه:
        [attachment=484]
        فایل های پیوست شده
        ---------------------------------------------------------------------------------------------------
        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
        shamsololama@yahoo.com
        09177733411

        کامنت

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

          #5
          RE: کمبو باکس بدون تکرار

          با سلام
          روشی که تو فایل ضمیمه آوردم هم روش خوبیه
          فایل های پیوست شده
          [CENTER]
          [SIGPIC][/SIGPIC]
          [/CENTER]

          کامنت

          • mahsa shayesteh

            • 2011/12/07
            • 272

            #6
            RE: کمبو باکس بدون تکرار

            سلام
            ممنون از جوابای متنوعی که دوستان دادن ولی جواب آقای وطن پرست رو اصلا نفهمیدم میشه توضیح بدید
            [color=#FF0000]در روزگاری که لبخند ادمها بخاطر شکست توست برخیز تا بگریند[/color]

            کامنت

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

              #7
              RE: کمبو باکس بدون تکرار

              تو این روش برای جلوگیری از اشغال بی مورد حافظه ابتدا آدرس آخرین ردیف استفاده شده رو پیدا میکنیم بعد بر اساس اون محدوده مورد نظر در قالب range1 تعریف میشه (از طریق set ) شیء collection این امکان رو میده مجموعه ای از ایتم ها به صورت واحد در بیان یعنی تو یک گروه قرار بگیرن هر کالکشن دو خصوصیت ایتم و کلید داره هر مقدار تو محدوده به عنوان کلید تعریف میشه این کلید ها باید منحصر به فرد باشن اگه نباشن error 457 به وجود میاد با شرط قرار دادن این ارور تکراری ها به کمبوباکس اضافه نمیشن (البته من این بخش یعنی حلقه foreach رو از یه برنامه دیگه استفاده کردم که کار خودم نبوده توضیحاتم برداشت خودم از روش بود اگه اساتید محترم هم نظر بدن ممنون میشم)
              [CENTER]
              [SIGPIC][/SIGPIC]
              [/CENTER]

              کامنت

              • Javid Mokhtari
                مدير تالار ويژوال بيسيك

                • 2012/01/16
                • 1212
                • 73.00

                #8
                RE: کمبو باکس بدون تکرار

                با سلام.
                با تشکر از دوست زحمتکشمون آقای وطن پرست.این خیلی خوبه که برای یک سئوال ایده های دیگری هم قرار دهیم.و به خومون نگیم که «چون یکی از دوستان جواب داده دیگه نیازی نیست که من جواب بدم».و این کار آقای وطن پرست قابل تقدیر است که باعث میشه با ایده های مختلفی روبرو شویم.

                آقای وطن پرست،لازم نمیدونم ذره بینی به مسئله نگاه کنیم اما اگه قسمت IFرو به صورت زیر بنویسید بهتره.چون اگه بین داده ها سطر خالی باشه،اون سطر خالی رو هم به Combobox اضافه میکنه:

                If Err.Number <> 457 And cell.Value <> "" Then
                [FONT=Tahoma][INDENT][CENTER][SIZE=3][FONT=courier new][B][FONT=comic sans ms][SIZE=3][FONT=arial]دوره های آموزش رایگان اکسل از صفر تا پیشرفته بصورت تصویری
                بیش از [COLOR=#008000]60[/COLOR] جلسه آموزش ویدئویی رایگان

                شرکت در دوره:
                [/FONT][/SIZE]
                [SIZE=5] [FONT=Tahoma][FONT=courier new][B][URL]https://javidsoft.ir/courses/[/URL][/B][/FONT][/FONT][/SIZE][/FONT]
                [/B][/FONT][/SIZE]
                [/CENTER]
                [/INDENT]
                [/FONT]

                کامنت

                • Nima

                  • 2011/07/22
                  • 385

                  #9
                  RE: کمبو باکس بدون تکرار

                  نوشته اصلی توسط vatanparast
                  با سلام
                  روشی که تو فایل ضمیمه آوردم هم روش خوبیه
                  با سلام خدمت اقای وطن پرست عزیز

                  من از این کدی که شما گذاشتین استفاده کردم ولی وقتی که تعداد ردیفهای ما زیاد باشه زمان لود شدن فرم خیلی زیاد طول می کشه

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

                  راهی هست که این زمان کم بشه

                  با تشکر
                  [CENTER][COLOR=#ff0000]************************************[/COLOR]
                  No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
                  [COLOR=#ff0000]************************************[/COLOR]

                  [/CENTER]

                  کامنت

                  • Nima

                    • 2011/07/22
                    • 385

                    #10
                    RE: کمبو باکس بدون تکرار

                    ... Any new updates
                    [CENTER][COLOR=#ff0000]************************************[/COLOR]
                    No [COLOR=#32CD32][B]LION's [/B][/COLOR]roar ruins my hut, I afraid of [COLOR=#ff0000][B]TERMITE's [/B][/COLOR]silence
                    [COLOR=#ff0000]************************************[/COLOR]

                    [/CENTER]

                    کامنت

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

                      #11
                      RE: کمبو باکس بدون تکرار

                      من برای 40000 داده تست کردم خیلی سریع جواب داد به نظرم مشکلت از جای دیگه ناشی میشه
                      [CENTER]
                      [SIGPIC][/SIGPIC]
                      [/CENTER]

                      کامنت

                      چند لحظه..