فروشگاه
انبارداری پیشرفته تحت اکسل

پیدا کردن عدد خاص و تغییر رنگ سلول اکسل VBA

پیدا کردن عدد خاص و تغییر رنگ سلول اکسل VBA با شما هستی با سری آموزش رایگان اکسل از دسته بندی بانک کد vba در اکسل توی این آموزش اکسل
برای شما نحوه پیدا کردن عدد خاص با تغییر رنگ سلول اکسل آموزش میدهید که یک آموزش بسیار کاربردی است.

پس ادامه آموزش را با آکادمی روح الله همراه باشید

آموزش های پیشنهادی برای شما

قبل از هر کاری آموزش زیر را مشاهده فرمایید👇

نحوه ذخیره فایل اکسل حاوی ماکرو

آموزش فعال کردن ماکرو اکسل

کار با رنگ ها در اکسل با استفاده از کدهای VBA

پیشنهاد آکادمی روح الله برای شما 

بانک کد VBA در اکسل

آموزش رایگان اکسل

در اکسل حرفه ای شوید روح الله

دوره های جامع اکسل

فایل های آماده اکسل

پیدا کردن عدد خاص و تغییر رنگ سلول اکسل با استفاده از کد نویسی VBA می توانید از کد های زیر استفاده کنید

روش اول پیدا کردن عدد خاص و تغییر رنگ سلول اکسل VBA

این کد ابتدا مقدار هدف را در متغیر targetValue ذخیره می‌کند، سپس برای هر سلول در محدوده‌ی استفاده شده در صفحه فعلی، بررسی می‌کند که آیا مقدار سلول یک عدد عددی است و با targetValue برابر است یا نه. در صورتی که شرایط بالا برقرار باشند، رنگ پس‌زمینه سلول را با استفاده از Interior.ColorIndex تغییر می‌دهد.

پیش نهاد آکادمی روح الله برای شما :
مقایسه مقادیر تکراری دو لیست در اکسل VBA

برای اجرای کد، به تب Developer رفته و روی دکمه‌ی “Visual Basic” کلیک کنید، سپس در پنجره باز شده، گزینه‌ی “Insert” را انتخاب کرده و سپس “Module” را انتخاب کنید. کد بالا را در پنجره‌ی باز شده وارد کرده و سپس کلید F5 را برای اجرای کد فشار دهید.

روش دوم پیدا کردن یک عدد خاص و تغییر رنگ  آن سلول اکسل با استفاده از کد نویسی vba

 

برای پیدا کردن یک عدد خاص در اکسل و تغییر رنگ سلول آن، می‌توانید از قابلیت شرطی (Conditional Formatting) استفاده کنید.

  1. ابتدا سلول‌هایی که می‌خواهید رنگ آن‌ها تغییر کند را انتخاب کنید.
  2. سپس به تب “Home” رفته و روی دکمه‌ی “Conditional Formatting” کلیک کنید.
  3. در منوی باز شده، گزینه‌ی “New Rule” را انتخاب کنید.
  4. در پنجره‌ی باز شده، گزینه‌ی “Use a formula to determine which cells to format” را انتخاب کرده و در فیلد زیر آن، فرمول زیر را وارد کنید:
پیش نهاد آکادمی روح الله برای شما :
قفل کردن شیت اکسل با کد VBA

=A1=خواسته_شما

در این فرمول، A1 به سلولی اشاره می‌کند که می‌خواهید در آن بررسی کنید که آیا مقدار مورد نظر موجود است یا نه. همچنین، خواسته_شما را با عددی که می‌خواهید پیدا کنید جایگزین کنید. 5. سپس برای تعیین رنگ سلول، روی دکمه‌ی “Format” کلیک کنید و رنگ مورد نظر خود را انتخاب کنید.

  1. در انتها روی دکمه‌ی “OK” کلیک کرده و تغییرات را ذخیره کنید.

اکنون، اگر عددی که می‌خواهید پیدا کنید در سلول مورد نظر وجود داشته باشد، رنگ سلول به رنگی که انتخاب کرده‌اید تغییر می‌کند.

میانگین رتبه 4/5 تعداد رای : 4
اکسل را حرفه ای یاد بگیر
نظر شما در مورد این مقاله چیست؟

نظر یا سوال شما در این مورد چیست؟

سلام دوست عزیز خوشحال میشوم نظر شما را در مورد این مقاله بدانم 👇

    محسن عربی

    با سلام و ممنون از کد فوق، یه سوال داشتم-یک سلولی دارم که عدد آن در بازه های مختلف تغییر میکند عدد این سلول با یکی از اعداد داخل یک ستون برابر است من میخوام وقتی عدد متغیر ما تغییر کرد سلول مورد نظر در ستون فوق رنگی شود.

    پاسخ

      با سلام! برای انجام این کار می‌توانید از رویداد Worksheet_Change استفاده کنید. این رویداد زمانی که یک سلول در شیت تغییر کند، فعال می‌شود. در این حالت، شما می‌توانید بررسی کنید که آیا مقدار سلولی که تغییر کرده است با یکی از مقادیر موجود در ستون مشخص شده برابر است یا نه. اگر برابر بود، سلول را رنگی کنید.

      در زیر یک نمونه کد آورده‌ام که به شما کمک می‌کند این کار را انجام دهید:

      فرض کنید سلول متغیر شما در A1 قرار دارد و شما می‌خواهید مقایسه را با مقادیر موجود در ستون B انجام دهید. اگر مقدار A1 برابر با یکی از مقادیر موجود در ستون B باشد، رنگ سلول‌ها در ستون B تغییر می‌کند.

      کد VBA


      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim variableCell As Range
      Dim checkRange As Range
      Dim cell As Range

      ' سلول متغیر که باید تغییرات آن بررسی شود
      Set variableCell = Range("A1")

      ' بازه‌ای که باید بررسی شود (در اینجا ستون B)
      Set checkRange = Range("B1:B100") ' تغییر این بازه طبق نیاز خود

      ' اگر سلول تغییر کرده در سلول متغیر (A1) باشد، بررسی را انجام بده
      If Not Intersect(Target, variableCell) Is Nothing Then
      ' پاک کردن رنگ‌های قبلی
      checkRange.Interior.ColorIndex = -4142

      ' بررسی اینکه آیا مقدار سلول متغیر در ستون B هست یا نه
      For Each cell In checkRange
      If cell.Value = variableCell.Value Then
      ' تغییر رنگ سلول در ستون B
      cell.Interior.Color = RGB(255, 255, 0) ' رنگ زرد
      End If
      Next cell
      End If
      End Sub

      توضیحات:
      1. سلول متغیر (A1): کدی که نوشته شده، به‌طور خاص برای سلول A1 طراحی شده است. شما می‌توانید این سلول را به هر سلول دیگری که مورد نظر است تغییر دهید.
      2. بازه بررسی (ستون B): شما می‌توانید محدوده ستون B را با هر ستون یا بازه دیگری که می‌خواهید بررسی کنید، تنظیم کنید. به‌عنوان مثال، اگر می‌خواهید ستون C را بررسی کنید، می‌توانید Range("C1:C100") را به جای Range("B1:B100") قرار دهید.
      3. **رنگ تغییرات**: در این کد از رنگ زرد (RGB(255, 255, 0)) برای رنگ‌آمیزی سلول‌های منطبق استفاده شده است. شما می‌توانید این رنگ را به هر رنگ دیگری که دوست دارید تغییر دهید.

      نحوه استفاده:
      1. این کد را در ماژول کد شیت مورد نظر قرار دهید.
      2. هر بار که سلول A1 تغییر کند، این کد بررسی می‌کند که آیا مقدار جدید آن با هر کدام از مقادیر موجود در ستون B برابر است یا خیر.
      3. اگر مقدار آن با یکی از مقادیر ستون B برابر باشد، آن سلول در ستون B رنگی می‌شود.

      امیدوارم این کد برای شما مفید باشد! اگر سوال دیگری دارید، خوشحال می‌شوم کمک کنم.

      پاسخ
    میلاد صداقت

    البته این رو از طریق کد نویسی میخوام بدونم چون از conditional formatting راهش رو بلدم
    حتی کد vba اون هم تا حدودی بلدم ولی نمیدونم چططور با رویداد تغییر یک سلول کد اجرا باید بشه

    پاسخ

      برای اجرای کد VBA به وسیله رویداد تغییر یک سلول در اکسل، می‌توانید از رویداد “Worksheet_Change” استفاده کنید. در اینجا نحوه انجام این کار توضیح داده شده است:

      وارد ویرایشگر ماکروها در اکسل شوید با استفاده از Alt + F11.

      در پنجره کد VBA، مطمئن شوید که از کارشیت مورد نظر خود استفاده می‌کنید. برای این کار، در پنل “Project Explorer”، دوبار کلیک بر روی ورق مورد نظر خود کنید.

      اکنون کد VBA زیر را وارد کنید

      Private Sub Worksheet_Change(ByVal Target As Range)
      Dim ColorRange As Range
      Dim ColorIndex As Integer
      Dim ChangedCell As Range

      ' تنظیم محدوده مربوط به Validation Data
      Set ColorRange = Range("A1:A10") ' محدوده مورد نظر را تغییر دهید

      ' تنظیم مقدار تغییر یافته
      Set ChangedCell = Target

      ' بررسی آیا تغییر در محدوده Validation Data رخ داده است
      If Not Intersect(ChangedCell, ColorRange) Is Nothing Then
      ' تعیین رنگ بر اساس انتخاب کاربر
      ColorIndex = ChangedCell.Value

      ' برای مقادیر اعتبارسنجی دیگر، اقدام به تنظیم رنگ می‌کنیم
      For Each Cell In ColorRange
      If Cell.Address <> ChangedCell.Address Then
      If Cell.Value = ColorIndex Then
      ' تنظیم رنگ خانه‌ها
      Cell.Interior.Color = RGB(255, 0, 0) ' مثال: قرمز

      ' اگر می‌خواهید رنگ دیگری داشته باشید، رنگ مورد نظر خود را تغییر دهید
      Else
      ' تنظیم رنگ پیش‌فرض
      Cell.Interior.ColorIndex = xlColorIndexNone
      End If
      End If
      Next Cell
      End If
      End Sub

      در کد بالا، متغیرهای ColorRange و ColorIndex را به محدوده و مقدار مورد نظر خود تغییر دهید.

      حالا این کد واقعی خواهد شد و هر زمان که یک خانه از محدوده Validation Data تغییر کند، رنگ سلول‌های دیگر به تغییر خواهد کرد.

      از این روش برای اجرای کد VBA با رویداد تغییر سلول‌ها استفاده کنید.

      پاسخ
    میلاد صداقت

    سلام تشکر بابت مطالب آموزنده شما
    من میخوام با تغییر یک سلول خانه هایی از سلول های دیگه رنگش عوض بشه
    فرض مثال در بک سلول data validation به سه مقدار تعریف کردم
    حالا میخوام با هر بار انتخاب یکی از این مقادیر backcolor مقادیر خانه های دیگه تغییر کنه.ممنون میشم راهنمایی بفرمایید

    پاسخ

      سلام ارادت خدمت شما دوست عزیز برای این کار مراحل زیر را دنبال کنید بازهم متوجه نشدین بگوید تا برای تون یک آموزش ضبط کنم در این مورد

      ماکروها (VBA) در اکسل استفاده کنید. این کد به شما کمک می‌کند تا با تغییر مقدار یک خانه از Validation Data، رنگ سلول‌های دیگر تغییر کند.

      ابتدا وارد ویرایشگر ماکروها در اکسل شوید. برای این کار، از کلید میانبر Alt + F11 استفاده کنید.

      در ویرایشگر ماکروها، از منوی “Insert” یک ماژول جدید ایجاد کنید.

      در ماژول جدید، کد زیر را وارد کنید:

      Sub ChangeCellColor()
      Dim TargetCell As Range
      Dim ColorRange As Range
      Dim ColorIndex As Integer

      ' تنظیم محدوده مربوط به Validation Data
      Set ColorRange = Range("A1:A10") ' محدوده مورد نظر را تغییر دهید

      ' تعیین رنگ بر اساس انتخاب کاربر
      ColorIndex = ActiveCell.Value

      ' برای مقادیر اعتبارسنجی دیگر، اقدام به تنظیم رنگ می‌کنیم
      For Each TargetCell In ColorRange
      If TargetCell.Address <> ActiveCell.Address Then
      If TargetCell.Value = ColorIndex Then
      ' تنظیم رنگ خانه‌ها
      TargetCell.Interior.Color = RGB(255, 0, 0) ' مثال: قرمز

      ' اگر می‌خواهید رنگ دیگری داشته باشید، رنگ مورد نظر خود را تغییر دهید
      Else
      ' تنظیم رنگ پیش‌فرض
      TargetCell.Interior.ColorIndex = xlColorIndexNone
      End If
      End If
      Next TargetCell
      End Sub

      در کد بالا، ColorRange محدوده خانه‌های Validation Data است. شما می‌توانید این محدوده را با محدوده‌ای که شما در فایل اکسل خود دارید تعویض کنید.

      آماده‌اید! اکنون می‌توانید ماکرو را اجرا کنید. به اکسل برگردید، محدوده‌ای از خانه‌های Validation Data را انتخاب کرده و سپس ماکرو “ChangeCellColor” را اجرا کنید. تغییر مقدار خانه‌ها و رنگ‌های آن‌ها را ببینید.

      این روش به شما امکان می‌دهد با تغییر مقادیر اعتبارسنجی، رنگ خانه‌های دیگر تغییر کند. اگر می‌خواهید رنگ‌ها را به رنگهای دیگری تغییر دهید، رنگ RGB مورد نظر خود را در کد تعویض کنید.
      موفق باشید مثل همیشه

      پاسخ