Yazdığım bir macro için yardımlarınıza ihtiyacım var. Amacım elimdeki BOM (Bill of Material) dosyasında bulunan malzemeleri "ana montaj", "detay parçalar" olarak ayırmak ve bunları renklendirmek. yaklaşık 20000 satır malzeme var.
Ana montajları tariflemek için A sutununda ilgili satıra manuel olarak "A" yazıyorum. B sutununda ise parçanın seviyesi bulunuyor 1,2,3 vb gibi. (BOM yapısını bilmeyenler için bir ana montajın altındaki parçaların seviyesi kendisininkinden büyüktür.)
Yazdığım kod aşağıdaki şekilde. problem ise else exit for satırını yazdığımda hücreleri sarıya boyamıyor. Yazmadığımda boyuyor ama 500 satırı da "lvl" için kontrol ediyor. Ama ben içteki for döngüsünün kendinden küçük yada kendine eşit bir sayı gördüğü anda durmasını istiyorum.
Yardımlarınız için şimdiden teşekkürler.
![Teşekkür ediyorum [TESEKKÜR]](./images/smilies/tesekkur.gif)
--------------------------------------------------------------
Sub ()
For i = 2 To 20000 Step 1
If Cells(i, "A").Value = "A" Then
Cells(i, "A").Interior.Color = vbGreen
Cells(i, "B").Interior.Color = vbGreen
Cells(i, "C").Interior.Color = vbGreen
Cells(i, "D").Interior.Color = vbGreen
Dim lvl As Integer
lvl = Cells(i, "B").Value
For x = i To i + 500 Step 1
If Cells(x, "B").Value > lvl Then
Cells(x, "A").Interior.Color = vbYellow
Cells(x, "B").Interior.Color = vbYellow
Cells(x, "C").Interior.Color = vbYellow
Cells(x, "D").Interior.Color = vbYellow
Else
Exit For
End If
Next
End If
Next
End Sub