رنگ کردم سلول های حاوی فرمول

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

    • 2010/07/12
    • 191
    • 75.00

    رنگ کردم سلول های حاوی فرمول

    سلام
    میخوام ماکرویی بنویسم که بتونه توی یک شیت سلول هایی که داخلشون فرمول هست را رنگی کنه .
    ممنون میشم جواب بدید
    فقر شب را "بی غذا" سر کردن نیست ... فقر روز را "بی اندیشه" سر کردن است !
  • shamsololama

    • 2010/02/15
    • 940

    #2
    RE: رنگ کردم سلول های حاوی فرمول

    با درود فراوان

    این یه نمونه ماکرو که این کار رو انجام میده

    قسمتی که می خواهید بررسی کند را بصورت A12000 نوشته ام که می توانید آن را تغییر دهید و یا کل شیت را در نظر بگیرید

    Sub Macro1()
    Dim c
    With Sheet1.Range("a12000")
    Set c = .Find("*", LookIn:=xlValues, LookAt:=xlPart)

    If Not c Is Nothing Then
    firstAddress = c.Address
    Do
    If Left(c.Formula, 1) = "=" Then
    'c.Select

    With c.Interior
    .ColorIndex = 6
    .Pattern = xlSolid
    End With
    End If
    Set c = .FindNext(c)
    Loop While Not c Is Nothing And c.Address <> firstAddress
    End If

    End With
    End Sub
    ---------------------------------------------------------------------------------------------------
    بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
    shamsololama@yahoo.com
    09177733411

    کامنت

    • mostafap4

      • 2010/07/12
      • 191
      • 75.00

      #3
      RE: رنگ کردم سلول های حاوی فرمول

      سلام
      ممنونم
      یک سوال دیگه
      میشه محدودیت ایجاد کرد مثلا فقط یک فرمول خاص که ما بهش میگیم را رنگی کنه
      یا مثلا فرمول جمع را قرمز و فرمول کانت را سبز که
      یا یک هم چین چیزی
      ممنونم از راهنمایی هاتون
      فقر شب را "بی غذا" سر کردن نیست ... فقر روز را "بی اندیشه" سر کردن است !

      کامنت

      • shamsololama

        • 2010/02/15
        • 940

        #4
        RE: رنگ کردم سلول های حاوی فرمول

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

        در این کد جدید همه فرومول ها رو زرد و فورمول های Sum رو آبی و فرمول های AVERAGE را قرمز می کنه که شما به هر صورت و تا هر چند تا فرمول های متفاوت رو می تونی به رنگ های متفاوت مشخص کنی


        Sub Macro1()
        Dim c
        With Sheet1.Range("a12000")
        Set c = .Find("*", LookIn:=xlValues, LookAt:=xlPart)

        If Not c Is Nothing Then
        firstAddress = c.Address
        Do
        If Left(c.Formula, 4) = "=SUM" Then
        With c.Interior
        .ColorIndex = 5
        .Pattern = xlSolid
        End With

        ElseIf Left(c.Formula, 8) = "=AVERAGE" Then

        With c.Interior
        .ColorIndex = 3
        .Pattern = xlSolid
        End With

        ElseIf Left(c.Formula, 1) = "=" Then

        With c.Interior
        .ColorIndex = 6
        .Pattern = xlSolid
        End With
        End If
        Set c = .FindNext(c)
        Loop While Not c Is Nothing And c.Address <> firstAddress
        End If

        End With
        End Sub
        ---------------------------------------------------------------------------------------------------
        بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
        shamsololama@yahoo.com
        09177733411

        کامنت

        • mostafap4

          • 2010/07/12
          • 191
          • 75.00

          #5
          RE: رنگ کردم سلول های حاوی فرمول

          با سلام و احترام
          مهندس این ماکرویی که فرستادید کار نکرد
          من یک روش دیگر انجام دادم و اون هم شناسایی فرمول ها با استفاده از .formula هست
          اگه میشه شما هم یک فایل نمونه اجرایی از این ماکروای که فرستادید بذارید
          ممنونم
          فقر شب را "بی غذا" سر کردن نیست ... فقر روز را "بی اندیشه" سر کردن است !

          کامنت

          • shamsololama

            • 2010/02/15
            • 940

            #6
            RE: رنگ کردم سلول های حاوی فرمول

            با درود فراوان

            دلیل کار نکردن ماکرو به این دلیل است که در پنج خط مانده به آخر ماکرد هنگام کپی کردن در سایت تغییر کرده و زمانی که به اکسل وارد می کنید آن را باید تصحیح کنید

            Set c = .FindNext© خط از کد c که در دایره قرار گرفته در واقع c بین دو پرانتز است که به این شکل در آمده (c) به این شکل باید باشد و آن را تصحیح کن مشکل اجرا ماکرو حل می شود

            در صورت نیاز یک میل برنید تا نمونه فایل را برایتان بفرستم چرا که امروز هرکاری کردم نتوانتسم فایل رو آپلود کنم

            shamsololama@yahoo.com
            ---------------------------------------------------------------------------------------------------
            بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
            shamsololama@yahoo.com
            09177733411

            کامنت

            • master

              • 2010/07/18
              • 118

              #7
              RE: رنگ کردم سلول های حاوی فرمول

              این کد رو من نوشتم ولی وقتی اجرا میکنم هیچ اتفاقی نمیافته (اون قسمت c رو هم درست کردم) ولی هیچ اتفاقی نمیافته
              اگه ممکنه یه نمونه فایل بزارید
              بعد اینکه کلا این کد چه موقعی اجرا میشه؟ من تو کلید تعریف کردم ولی بعد از زدن کلید هیچ اتفاقی نمیافته حالا اگه توی یه module جدید تعریف کنم چه موقعی اجرا میشه؟(عین فرمول های عادی اکسل هر موقع توی صفحه تغییر ایجاد بشه این هم اجرا میشه یا نه حالت دیگری هست؟)
              با تشکر

              کامنت

              • shamsololama

                • 2010/02/15
                • 940

                #8
                RE: رنگ کردم سلول های حاوی فرمول

                نوشته اصلی توسط master
                این کد رو من نوشتم ولی وقتی اجرا میکنم هیچ اتفاقی نمیافته (اون قسمت c رو هم درست کردم) ولی هیچ اتفاقی نمیافته
                اگه ممکنه یه نمونه فایل بزارید
                بعد اینکه کلا این کد چه موقعی اجرا میشه؟ من تو کلید تعریف کردم ولی بعد از زدن کلید هیچ اتفاقی نمیافته حالا اگه توی یه module جدید تعریف کنم چه موقعی اجرا میشه؟(عین فرمول های عادی اکسل هر موقع توی صفحه تغییر ایجاد بشه این هم اجرا میشه یا نه حالت دیگری هست؟)
                با تشکر
                با درود فراوان
                کدهای که می نویسیم بستگی داره آن را در چه اونتی می نویسیم (Event) مثلا اگر در اونت اوپن بوک بنویسید زمان باز شدن فایل این کد اجرا میش و اگر چنج سلکشن بنویسی زمانی که یک سلول را انتخاب میکنید این کد اجرا می شود و ... به همین تریتب در اونت های دیگر و اگر در ماژولی در یک ماکرو


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

                کامنت

                • master

                  • 2010/07/18
                  • 118

                  #9
                  RE: رنگ کردم سلول های حاوی فرمول

                  ضمن تشکر میخواستم بدونم کدوم اونت باعث میشه رفتار کد مثل توابع خود اکسل بشه یعنی هر موقعی که یه تابع ابدیت میشه این کد هم عمل کنه؟اگه اشتباه نکنم با هر تغییری توی هر سلولی کل توابع ابدیت میشه البته مطمئن نیستم درسته؟
                  ایا جزوه یا PDFی وجود داره که همه اونت ها رو با توضیحاتش داخلش نوشته باشه؟(ترجیحا فارسی)
                  یه وال دیگه هم دارم اونم اینکه الان این کد رو توی کجا وارد کنم؟الان وقتی محیط VBA رو میارم سه جا هست که میشه وارد کرد یکی نوشته Sheet یکی ThisWorkbook و یکی هم Module ها هستن اینا چر فرقی دارن؟ و میشه چند تا کد رو توی یه Module وارد کرد یا نه باید هر کدی رو توی یه Module نوشت؟(اگه هر دو تا میشه کدوم بهتر هست؟مزیتش چی هست؟)
                  با تشکر

                  کامنت

                  • shamsololama

                    • 2010/02/15
                    • 940

                    #10
                    RE: رنگ کردم سلول های حاوی فرمول

                    نوشته اصلی توسط master
                    ضمن تشکر میخواستم بدونم کدوم اونت باعث میشه رفتار کد مثل توابع خود اکسل بشه یعنی هر موقعی که یه تابع ابدیت میشه این کد هم عمل کنه؟اگه اشتباه نکنم با هر تغییری توی هر سلولی کل توابع ابدیت میشه البته مطمئن نیستم درسته؟
                    ایا جزوه یا PDFی وجود داره که همه اونت ها رو با توضیحاتش داخلش نوشته باشه؟(ترجیحا فارسی)
                    یه وال دیگه هم دارم اونم اینکه الان این کد رو توی کجا وارد کنم؟الان وقتی محیط VBA رو میارم سه جا هست که میشه وارد کرد یکی نوشته Sheet یکی ThisWorkbook و یکی هم Module ها هستن اینا چر فرقی دارن؟ و میشه چند تا کد رو توی یه Module وارد کرد یا نه باید هر کدی رو توی یه Module نوشت؟(اگه هر دو تا میشه کدوم بهتر هست؟مزیتش چی هست؟)
                    با تشکر
                    با درود فراوان
                    برای اینکه هر موقع تابع های خود اکسل محاسبه میشن این کدی که نوشتی هم اجرا بشه تو این اونت بنویس

                    Private Sub Worksheet_Calculate()

                    End Sub

                    2
                    شما کدی که دارین رو تو هر سه تا می تونی بنویسی بستی گی داره که میخوای کی اون اون کدت اجرا بشه و اینکه یک کد رو وقتی یه جا ی می نویسی می تونی از چند جا اجراش کنی مثلا وقتی ماکرویی رو تو یک ماژول نوشتی به هرچند تا کلیدی که تو صفحه و تو هر شیتی از شیتها می تونی با اسین ماکرو وصلش کنی که اون کد رو اجرا کنه
                    و اینکه تو هرکدوم میشه کدهای زیادی نوشت و اینکه مثلا بیایم چند تا ماژول درست کنیم و یا اینکه همش رو تو یک ماژول بنویسیم فرقی نمیکنه ولی برای اینکه بتونیم دسته بندیشون کنیم و برنامه نویسیمون ترتیب و نظرم بیشتری داشته باشه میتونی تو چند تا ماژول که نیاز داریم و هر کدوم به اسمی که نشون دهنده آن کارمون باشه تقسیم بندیشون کنیم

                    ---------------------------------------------------------------------------------------------------
                    بمانیم تا کاری کنیم ،نه کاری کنیم تا بمانیم [size=x-small](دکتر شریعتی)[/size]
                    shamsololama@yahoo.com
                    09177733411

                    کامنت

                    چند لحظه..