ترکیب متن سلول ها

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

    • 2015/03/29
    • 3341

    #16
    با سلام

    فایل پیوست را بررسی کنید.

    کد PHP:
    Sub test()

    Z1 Cells(Rows.Count"A").End(xlUp).Row



    Dim list1 
    As New Collection

    For 2 To Z1

    If Application.CountIf(Range("A2:A" Z1), Range("A" I)) = 1 Then

    Range
    ("C" I) = Range("B" I)

    ElseIf 
    Application.CountIf(Range("A2:A" Z1), Range("A" I)) > And Range("A" I).Interior.ColorIndex <> 4 Then

    For I To Z1

    If Range("A" I) = Range("A" JThen

    Range
    ("A" J).Interior.ColorIndex 4

    list1
    .Add Range("B" J)

    End If

    Next

    For 1 To list1.Count

    XX 
    XX "-" list1.Item(K)

    Next

    Range
    ("C" I) = Right(XXLen(XX) - 1)

    Set list1 Nothing

    XX 
    ""

    End If

    Next

    Range
    ("A2:A" Z1).Interior.ColorIndex 0

    End Sub 
    فایل های پیوست شده

    کامنت

    • fokker

      • 2014/07/10
      • 336

      #17
      با سلام و تشکر

      بعد از کلیک بر روی دکمه طراحی شده و انتقال فایل ها به ستون c ، بین داده های منتقل شده فاصله زیادی می افتد لطفا به فایل پیوست و سلول c10 نگاه کنید . تشکر
      فایل های پیوست شده

      کامنت

      • iranweld

        • 2015/03/29
        • 3341

        #18
        مشکل از دیتای سلولهای شماست که دارای اسپیس زیادی هستش

        در فایل پیوست ماکرو حذف فاصله را یکبار اجرا کنید تا فواصل خالی اضافه حذف شوند

        Click image for larger version

Name:	Untitled.png
Views:	1
Size:	58.6 کیلو بایت
ID:	133862
        فایل های پیوست شده

        کامنت

        • fokker

          • 2014/07/10
          • 336

          #19
          بسیار تشکر

          کامنت

          • كامران

            • 2016/06/29
            • 147
            • 41.00

            #20
            نوشته اصلی توسط iranweld
            با سلام

            فایل پیوست را بررسی کنید.

            کد PHP:
            Sub test()

            Z1 Cells(Rows.Count"A").End(xlUp).Row



            Dim list1 
            As New Collection

            For 2 To Z1

            If Application.CountIf(Range("A2:A" Z1), Range("A" I)) = 1 Then

            Range
            ("C" I) = Range("B" I)

            ElseIf 
            Application.CountIf(Range("A2:A" Z1), Range("A" I)) > And Range("A" I).Interior.ColorIndex <> 4 Then

            For I To Z1

            If Range("A" I) = Range("A" JThen

            Range
            ("A" J).Interior.ColorIndex 4

            list1
            .Add Range("B" J)

            End If

            Next

            For 1 To list1.Count

            XX 
            XX "-" list1.Item(K)

            Next

            Range
            ("C" I) = Right(XXLen(XX) - 1)

            Set list1 Nothing

            XX 
            ""

            End If

            Next

            Range
            ("A2:A" Z1).Interior.ColorIndex 0

            End Sub 
            الحق که میگن دانش انتها نداره و هر چیزی بلد باشی حتما یکی هست که بهترشو بلده چون کد من و کد شما تقریبآ یه کار انجام میده با این تفاوت که مال شما کار رو بهتر انجام میده و با اجازه شما من ازش تو کارای خودم استفاده میکنم
            ولی در موردش چند تا سوال دارم اگه ممکنه راهنمائی کنید
            1 - چون در این دیتاهای خاص از - در داخل متنها هم استفاده شده اگه بینشون هم - بذاریم قاطی میشه پس من رو سیستم خودم تو اول و آخر اونا از ] و[ استفاده کردم ولی باز هم شکیل نیست حالا سوال اینه با توجه به اینی که vba تابعی داره که میشه باهاش رنگ فونت رو عوض کرد راهی هست که چیزی مثل chr(13) که برا اینتر میذاریم بین متنها چیزی توی خط xx = xx &..... بذاریم که دیتاهائی که از ستون b به c میاد یکی در میون مثلآ سیاه و سفید بشه ؟
            2 - من خواستم بعد اینکه کد کارشو انجام داد ستونهای تکراری رو حذف کنم و کردم نتیجه ش هم این شد بعدش وقتی دوباره کد رو اجرا کردم با ستون c مثل ستون خالی برخورد کرد و کلآ دیتاها بهم ریخت پس اگه من بخوام تکراریها رو حذف کنم و بعد خط جدیدی به دیتاهام اضافه کنم و بخوام دوباره کد رو اجرا کنم راهش چیه که به کارهائی که قبلآ کرده دست نزنه و فقط رو جدیدها محاسبه انجام بده ؟
            3 - در این مورد خاص چون تعداد ستونها زیاده و کد وقت میخواد تا کارشو انجام بده اکسل تا آخر کار به حالت نو ریسپانس میره و امکان داره آدم خیال کنه اکسل قاطی کرده راهی هست در طول انجام اینکار چیزی نمایش داده بشه که آدم مطمئن باشه برنامه داره کارشو میکنه ؟ (البته میشه چیزی وسط حلقه ها اضافه کرد ولی سرعت کار رو میاره پایین من دنبال یه تنظیمات توی خود اکسل هستم که شاید برا اینکار گذاشته و من بلدش نیستم )

            کامنت

            • كامران

              • 2016/06/29
              • 147
              • 41.00

              #21
              نوشته اصلی توسط كامران
              الحق که میگن دانش انتها نداره و هر چیزی بلد باشی حتما یکی هست که بهترشو بلده چون کد من و کد شما تقریبآ یه کار انجام میده با این تفاوت که مال شما کار رو بهتر انجام میده و با اجازه شما من ازش تو کارای خودم استفاده میکنم
              ولی در موردش چند تا سوال دارم اگه ممکنه راهنمائی کنید
              1 - چون در این دیتاهای خاص از - در داخل متنها هم استفاده شده اگه بینشون هم - بذاریم قاطی میشه پس من رو سیستم خودم تو اول و آخر اونا از ] و[ استفاده کردم ولی باز هم شکیل نیست حالا سوال اینه با توجه به اینی که vba تابعی داره که میشه باهاش رنگ فونت رو عوض کرد راهی هست که چیزی مثل chr(13) که برا اینتر میذاریم بین متنها چیزی توی خط xx = xx &..... بذاریم که دیتاهائی که از ستون b به c میاد یکی در میون مثلآ سیاه و سفید بشه ؟
              2 - من خواستم بعد اینکه کد کارشو انجام داد ستونهای تکراری رو حذف کنم و کردم نتیجه ش هم این شد بعدش وقتی دوباره کد رو اجرا کردم با ستون c مثل ستون خالی برخورد کرد و کلآ دیتاها بهم ریخت پس اگه من بخوام تکراریها رو حذف کنم و بعد خط جدیدی به دیتاهام اضافه کنم و بخوام دوباره کد رو اجرا کنم راهش چیه که به کارهائی که قبلآ کرده دست نزنه و فقط رو جدیدها محاسبه انجام بده ؟
              3 - در این مورد خاص چون تعداد ستونها زیاده و کد وقت میخواد تا کارشو انجام بده اکسل تا آخر کار به حالت نو ریسپانس میره و امکان داره آدم خیال کنه اکسل قاطی کرده راهی هست در طول انجام اینکار چیزی نمایش داده بشه که آدم مطمئن باشه برنامه داره کارشو میکنه ؟ (البته میشه چیزی وسط حلقه ها اضافه کرد ولی سرعت کار رو میاره پایین من دنبال یه تنظیمات توی خود اکسل هستم که شاید برا اینکار گذاشته و من بلدش نیستم )
              جناب iranweld
              ممنون میشم اگه جواب سوالاتم رو هم بدید

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #22
                با سلام

                جناب آقای مهندس کامران

                سوالاتی که در حد سواد بنده باشه رو من تو این سایت جواب میدم.

                در مورد سوال دوم فرمودید ستون ها رو میخواهید حذف کنید یا سطرها رو حذف کنید؟

                با یک مثال ساده بفرمایید ممنون میشم

                کامنت

                • كامران

                  • 2016/06/29
                  • 147
                  • 41.00

                  #23
                  نوشته اصلی توسط iranweld
                  با سلام

                  جناب آقای مهندس کامران

                  سوالاتی که در حد سواد بنده باشه رو من تو این سایت جواب میدم.

                  در مورد سوال دوم فرمودید ستون ها رو میخواهید حذف کنید یا سطرها رو حذف کنید؟

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

                  کامنت

                  • كامران

                    • 2016/06/29
                    • 147
                    • 41.00

                    #24
                    فایل کامل
                    فایل های پیوست شده

                    کامنت

                    • Amir Ghasemiyan

                      • 2013/09/20
                      • 4599
                      • 100.00

                      #25
                      بصورت کلی ش این میشه که چکار کنیم تا یه ماکرو خصوصآ اینی که تو تاپیک دوستمون نوشتن وقتی یه بار اجرا شد و روی یه سری دیتا محاسباتی رو انجام داد در اجراهای بعدی کارهائی رو که قبلآ کرده ندیده بگیره و بره سراغ اطلاعات جدید

                      پ.ن فایل با کدی که نوشتن ایشون رو تو آخرین پست تاپیک میذارم (ظاهرآ اینجا نمیشه ), که میگرده اگه تو ستون a متن تکراری پیدا کرد متن سلول b متناظرشو به متنی که توی اولین سطری ار ستون c که جلوی همون کد ستون a هست میذاره تا اینجا مشکل نداره ولی مشکل از اونجا شروع میشه که ما تکراریهای ستون a رو حذف کنیم و دوباره کد رو اجرا کنیم
                      اول یکبار ترکیب سلولها رو اجرا کنید و به ستون c دقت کنید بعد حذف رو اجرا کنید و دوباره ترکیب رو اجرا کنید
                      سلام

                      با يك تغيير كوچيك فكر كنم نتيجه اي كه نياز داريد رو بتونين بدست بياريد. كافيه خط شش رو به اين صورت اصلاح كنيد:

                      کد:
                      If Application.CountIf(Range("A2:A" & Z1), Range("A" & I)) = 1 And Range("C" & I) = "" Then

                      کامنت

                      • كامران

                        • 2016/06/29
                        • 147
                        • 41.00

                        #26
                        نوشته اصلی توسط Amir Ghasemiyan
                        سلام

                        با يك تغيير كوچيك فكر كنم نتيجه اي كه نياز داريد رو بتونين بدست بياريد. كافيه خط شش رو به اين صورت اصلاح كنيد:

                        کد:
                        If Application.CountIf(Range("A2:A" & Z1), Range("A" & I)) = 1 And Range("C" & I) = "" Then
                        تغییر مورد نظر شما رو اعمال کردم کار کرد ولی وقتی بعد همه کارها یه خط جدید با یه کد تکراری اضافه کردم و ماکرو رو اجرا کردم دوباره مشکل خودشو نشون داد

                        کامنت

                        • Amir Ghasemiyan

                          • 2013/09/20
                          • 4599
                          • 100.00

                          #27
                          نوشته اصلی توسط كامران
                          تغییر مورد نظر شما رو اعمال کردم کار کرد ولی وقتی بعد همه کارها یه خط جدید با یه کد تکراری اضافه کردم و ماکرو رو اجرا کردم دوباره مشکل خودشو نشون داد
                          تا جایی که یادمه گفته بودید که تکراری ها پشت سر هم میاد. اگه قرار باشه مکان تکراری ها رندوم باشه کدها متفاوت میشه

                          یک نمونه بذارید برای مرحله دوم اضافه کردن کدها که بتونم بررسی کنم

                          کامنت

                          • كامران

                            • 2016/06/29
                            • 147
                            • 41.00

                            #28
                            نوشته اصلی توسط Amir Ghasemiyan
                            تا جایی که یادمه گفته بودید که تکراری ها پشت سر هم میاد. اگه قرار باشه مکان تکراری ها رندوم باشه کدها متفاوت میشه

                            یک نمونه بذارید برای مرحله دوم اضافه کردن کدها که بتونم بررسی کنم
                            در اصل این برناه و این جدول مال من نیست من از داده هاش برا یادگیری استفاده کردم و چون ماکروئی که داشت مشکل داشت نشستم و یکی دیگه با آزمون و خطا طراحی کردم که براتون میذارم و ممنون میشم نظرتونو بدونم فقط یه چیزی که کنجکاوم کرده اینه که آیا راهی هست که وقتی ماکرو داره کارشو میکنه و داده ها رو تو یه خونه توی[] جمع میکنه آیا راهی هست که یه متغیر تعریف کرد که داخل 1 سلول هر قسمتی که (در اینجا داخل هر [] ) به یه رنگ در بیاد مثال:[asdf] [asdf] ​[asdf]
                            فایل های پیوست شده

                            کامنت

                            چند لحظه..