VBA ile Çoklu Kod Arayıp Hücre Renklendirme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

ceterisdenge

Kullanıcı
Katkı: %0
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sevgili uzman arkadaşlar epeyce bir süre önce yazılmış ama işimi gören bir formülde kod eklemeyi yapmam mümkün mü ? Yani aşağıdaki 100 yazan yere 101, 105, 148, 155 vb rakamlar eklemek istiyorum. Bunu nasıl yapabilirim yada yapmak mümkün mü ? Yardımcı olacak arkadaşlara şimdiden teşekkür ederim.

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (6 satır). Giriş Yap
 
Çözüm
Merhaba, InStr ile tek bir değeri aramak yerine aranacak kodları bir diziye yazıp döngüyle kontrol edebilirsiniz. Case 100 To 299 satırının altındaki If InStr(Cells(i, 1).Value, "100") Then ile başlayan bloğu, kendi kapanış End If satırı dahil, aşağıdaki döngüyle değiştirmeniz yeterlidir:

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (10 satır). Giriş Yap

Kod nasıl çalışır?
  1. Array("100", "101", "105", "148", "155") aranacak kodların listesidir; yeni bir kod eklemek için listeye virgülle yeni bir değer...
Klasik Asp 3.0 dan hatırladığım kadarıyla üstteki koşulların hiç biri olmuyorsa şu işlemi yap demek için ise
Case else kullanılıyordu sanırım burada da kullanılabilir.
 
Merhaba, InStr ile tek bir değeri aramak yerine aranacak kodları bir diziye yazıp döngüyle kontrol edebilirsiniz. Case 100 To 299 satırının altındaki If InStr(Cells(i, 1).Value, "100") Then ile başlayan bloğu, kendi kapanış End If satırı dahil, aşağıdaki döngüyle değiştirmeniz yeterlidir:

Kod:
Bu kodu görmek için giriş yapmanız gerekmektedir (10 satır). Giriş Yap

Kod nasıl çalışır?
  1. Array("100", "101", "105", "148", "155") aranacak kodların listesidir; yeni bir kod eklemek için listeye virgülle yeni bir değer yazmanız yeterlidir.
  2. For Each döngüsü A sütunundaki hücrede bu kodları sırayla arar.
  3. Kodlardan biri bulunursa ve F sütunundaki değer E sütunundakinden küçükse E hücresi kırmızıya boyanır.
  4. Exit For, eşleşme bulunduğunda aynı satırda diğer kodların boşuna aranmasını önler; yalnız bu iç döngüden çıkar, i döngüsü devam eder.

Notlar
  • Dim kod As Variant satırını prosedürün başındaki diğer Dim satırlarının yanına yazabilirsiniz. Select Case satırı, diğer Case dalları ve End Select olduğu gibi kalır.
  • Eski If InStr bloğunun içinde boyama dışında başka satırlar varsa bunlar Exit For satırından önce yazılmalıdır.
  • InStr hücrenin herhangi bir yerinde arama yapar; örneğin "105" kodu "Hesap 1050" hücresinde de eşleşir. Kod hücrenin başında yer alıyor ve ardından boşluk geliyorsa If InStr satırı yerine If Left(Cells(i, 1).Value & " ", Len(kod) + 1) = kod & " " Then kullanılabilir; bu durumda "1050" ile başlayan hücreler de eşleşmez.
 
Çözüm
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Geri
Üst