• DİKKAT

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

iç içe döngüyü nasıl yapabilirim ?

Katılım
31 Mart 2010
Mesajlar
184
Excel Vers. ve Dili
excel 2010/2013
İç içe bir döngü hazırlamak istiyorum , yanlız 3 sütundaki dönem kısmı dinamik değişkenli bir dizidir bu dizi 5 dönem ve 10 dönem ve 15 dönem olarak değişiklik gösterecektir benzer şekilde değişiklik gösterecektir aynı şekilde satış merkezide 5,10 ve 15 olarak değişiklik gösteren bir dizidir, fakat müşteri sayısı 1,2,3 4 olarak sabittir, bunun için ilk 5 dönem ve 5 satış merkezi için örnek excelde bir dosya oluşturdum , bunu makroda nasıl yazabilirim .
 
Bu tablonun aynısını 5, 10 veya 15'e göre makroyla mı oluşturmak istiyorsunuz?
 
Eğer öyleyse aşağıdaki kodları deneyiniz. Kodlar önce satış merkezi ve dönem sayısını sonra da eski verilerin silinip silinmeyeceğini sorar, verdiğiniz cevaplara göre tabloyu oluşturur:

Kod:
Sub sipariş()
merkez = InputBox("Lütfen Satış Merkezi sayısını giriniz.")
dönem = InputBox("Lütfen Dönem sayısını giriniz.")
eski = WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(3).Row)
uyarı = MsgBox("Eski veriler silinsin mi?", vbYesNo)
If uyarı = vbYes Then
Range("A2:C" & eski).ClearContents
End If


For i = 1 To merkez
    For k = 1 To 4
        For j = 1 To dönem
            yeni = Cells(Rows.Count, "A").End(3).Row + 1
            Cells(yeni, "A") = i
            Cells(yeni, "B") = k
            Cells(yeni, "C") = j
        Next
    Next
Next
End Sub
 
merkez ve donem degıskenlerını dnamık dızıde nasıl kullanırız
 
cell.end.row nedir ??

cells(rows.count,"A") ifadesi cells(satır_numarası, sütun) anlamına gelmektedir. rows.count ile o sayfadaki satır sayısını, "A" ile de A sütununu belirtiyoruz.

Cells(rows.count,"A") ise bu durumda A sütunundaki en son hücre anlamına geliyor. Bu excel 2003 ve öncesinde A65536'ya sonraki versiyonlarda ise A1048576'ya denk geliyor.

Cells(rows.count,"A").end(3) ifadesi herhangi bir hücredeyken CTRL+Üst ok tuşuna bastığınızdaki işlemi yani o sütundaki bir önceki dolu hücreye gitmenizi sağlar. Bu komutun tamamıyla diyoruz ki O sütundaki son hücreden yukarı doğru çık ve son dolu hücreyi seç. Bu işlemi son dolu hücreyi bulmak için yaparız.

Cells(rows.count,"A").end(3).row ifadesi ise bulmuş olduğumuz son dolu hücrenin satır numarasını verir. liste oluştururken sıradaki öğeyi dolu hücrelerin altına yazmak için son dolu hücreyi bulmalıyız.

Cells(rows.count,"A").end(3).row+1 ile de son dolu hücrenin altındaki hücrenin yani o sütundaki ilk boş hücrenin satır numarasını bulmuş oluyoruz ve sonraki kodlarımızda bunu kullanarak boş hücreye istediğimiz ifadeyi yazdırıyoruz.
 
merkez ve donem degıskenlerını dnamık dızıde nasıl kullanırız

Açıkçası burda ne kastettiğinizi anlamadım. Önerdiğim makro işinizi görmüyor mu? Farklı bir çözüm mü gerekiyor?
 
bız dınamık dızıler uzerınde çalışıyoruz farklı kombinasyonla yenı sıralamalar yapmasını ıstıyorum bu benım tez çalışmam
 
Üzgünüm, diziler konusunda bilgim yok maalesef.
 
Geri
Üst