iç içe döngü kurulabilir mi?

Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
iyi akşamlar değerli üstadlarım;

iç içe 3 adet döngü kurulabilir mi?
aşağıdaki kodları inceler misiniz?

Kod:
Sub cizgi()
For sss = 10 To 21
For su1 = 2 To 5
For su2 = 10 To 13
If Cells(sss, su1) = 0 Then
    Cells(sss, su1).Borders(xlDiagonalDown).LineStyle = xlNone
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End If
If Cells(sss, su2) = 0 Then
Cells(sss, su2).Borders(xlDiagonalDown).LineStyle = xlNone
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End If
Next
Next
Next
End Sub
yapmak istediğim ise şu:

10-21 arası satırlar ile 2-5 ve 10-13 arası sütunlara isabet eden hücreleri tek tek sorgulaması ve hücre değeri sıfır ise belirttiğim şekilde hücre biçimlendirmesini yapması. ancak for döngüsünün iç içe kullanılıp kullanılamayacağını bilmiyorum. ve yukarıdaki kod tam olarak istediğimi gerçekleştirmiyor.

bu sorunu nasıl çözebiliriz??

saygılar...
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Merhaba.
Aşağıdaki şekilde denermisiniz?:cool:
Kod:
Sub cizgi()
For sss = 10 To 21
For su1 = 2 To 5
If Cells(sss, su1) = 0 Then
    Cells(sss, su1).Borders(xlDiagonalDown).LineStyle = xlNone
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End If
next su1
For su2 = 10 To 13
If Cells(sss, su2) = 0 Then
Cells(sss, su2).Borders(xlDiagonalDown).LineStyle = xlNone
    With Selection.Borders(xlDiagonalUp)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
End If
Next su2
Next sss
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
İçiçe döngü elbette kurulabilir ancak sorunuz için tek bir döngü yeterlidir. Aşağıdaki kodu deneyin. Burada özellikle aralık belli olduğundan kullanılan döngü yapısına dikkat edin, döngü direk olarak tanımlanan aralık içindeki hücre adresini dikkate almaktadır.

Kod:
Sub cizgi()
For Each hucre In [b10:e21,j10:m21]
If hucre = 0 Then
hucre.Borders(xlDiagonalDown).LineStyle = xlNone
 With hucre.Borders(xlDiagonalUp)
  .LineStyle = xlContinuous
  .Weight = xlThin
  .ColorIndex = xlAutomatic
 End With
End If
Next
End Sub
 
Katılım
14 Ekim 2006
Mesajlar
408
Excel Vers. ve Dili
excel 2003 TR
sn. leventm ve sn. sezar;

ilginize ve yardımınıza teşekkürler. özellikler sn. leventm'in çözümüyle o kadar satırın aslında kısaltılarak nasıl yazılabileceğine dair önemli bir şey daha öğrendim. her ikiside çalışıyor. :D

tekrar teşekkür ediyor, iyi çalışmalar diliyorum.
 
Üst