• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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...
 
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
 
İç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
 
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.
 
Geri
Üst