• DİKKAT

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

İç İçe For Next Döngüsü

Engineerist34

Altın Üye
Katılım
8 Ekim 2012
Mesajlar
46
Excel Vers. ve Dili
Office 365
Merhabalar,
Resimde görüldüğü gibi Sayfa1 de ETÜT alan öğrenciler E kolonunda 1 numara ile tanımlanmış. Bunları Sayfa2'ye For Next döngüsü ile aşağıdaki kodu kullanarak almaya çalışıyorum
239760

Kod:
Private Sub CommandButton2_Click()

Range("C5:F1000").ClearContents
Dim i As Integer
Dim x As Integer
Dim y As Integer
x = Worksheets("Sayfa1").Range("A1048576").End(xlUp).Row

For i = 2 To x
    For y = 5 To x
If Worksheets("Sayfa1").Range("E" & i).Value = 1 Then

Worksheets("Sayfa2").Range("C" & y).Value = "A1"
Worksheets("Sayfa2").Range("D" & y).Value = Worksheets("Sayfa1").Range("B" & i).Value
Worksheets("Sayfa2").Range("E" & y).Value = Worksheets("Sayfa1").Range("C" & i).Value
Worksheets("Sayfa2").Range("F" & y).Value = Worksheets("Sayfa1").Range("D" & i).Value

End If
i = i + 1
Next y

Next i

End Sub

Ancak E kolonunda 0 denk geldiğinde i değişkeni sabit kalırken y değişkeni arttığı için resimde görüldüğü gibi Sayfa2'deki çıktı da boşluklar oluşuyor.
Bunu nasıl engelleyebilirim acaba?
 
Kodları aşağıdakiyle değiştirin.
Kod içinde bir açıklama yaptım. Dikkat edersiniz.
C++:
Private Sub CommandButton2_Click()
    Dim i As Integer
    Dim x As Integer
    Dim y As Integer
    Range("C5:F1000").ClearContents
    x = Worksheets("Sayfa1").Range("A1048576").End(xlUp).Row
    y = 5   'Resimde 5.satırdan başlıyordu. Farklı bir satırdan başlasın diyorsanız değiştirirsiniz
    For i = 2 To x
        If Worksheets("Sayfa1").Range("E" & i).Value = 1 Then
            Worksheets("Sayfa2").Range("C" & y).Value = "A1"
            Worksheets("Sayfa2").Range("D" & y).Value = Worksheets("Sayfa1").Range("B" & i).Value
            Worksheets("Sayfa2").Range("E" & y).Value = Worksheets("Sayfa1").Range("C" & i).Value
            Worksheets("Sayfa2").Range("F" & y).Value = Worksheets("Sayfa1").Range("D" & i).Value
            y = y + 1
        End If
    Next i
End Sub
 
Ömer Bey, çok teşekkür ederim.
Ellerinize, emeğinize sağlık.
İyi Akşamlar..
 
Geri
Üst