• DİKKAT

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

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

Katılım
8 Haziran 2007
Mesajlar
401
Excel Vers. ve Dili
excel fonksiyonlar
Arkadaşlar kendimce makro öğrenmeye çalışıyorum. Bu sefer konu başlığım içiçe for next döngüsü. Yapmaya çalıştığım şey şu : E1 hücresinde veri doğrulama ile belirlediğim ismin hangi üründen kaç tane sattığını For next döngüsü ile G2:I2 aralığına yazdırabiliyorum. Aynı mantıkla (yani for next döngüsü ile) tutarları da hesaplatabilirim. Fakat içiçe for next döngüsü ile bunun daha kısa ve ekonomik bir çözümü olacağını düşünüyorum. (tabii belki yanlış da düşünüyor olabilirim. Farklı çözümlere de açığım)

Öğrenmek istediğim ikinci husus şu : F4 hücresinde yazılan ölçüte göre kişilerin son x sayıda satışlarını bulmak. G4:I4 aralığına hangi üründen kaç tane satmış. Bunların tutarını da G5:I5 aralığına yazacak . Ilgilenen arkadaşlara şimdiden teşekkürler.
 

Ekli dosyalar

Merhaba,

İlk sorunuz için module kopyalarak çalıştırınız. 2. sorunuzu anlayamadım.

Kod:
Sub BulSayTopla()
 
    Dim c As Range, ilkadres As Variant, i As Byte, say As Long, sat As Long
 
    Range("G2:I6").ClearContents
 
    say = WorksheetFunction.CountIf([A:A], Range("E1"))
 
    With Range("A:A")
        Set c = .Find(Range("E1"), LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            ilkadres = c.Address
            Do
                For i = 7 To 9
                    If Cells(c.Row, "B") = Cells(1, i) Then
                        Cells(2, i) = 1 + Cells(2, i)
                        Cells(3, i) = Cells(c.Row, "[COLOR=red][B]C[/B][/COLOR]") + Cells(3, i)
                        sat = sat + 1
                        If sat > say - [F4].Value Then
                            Cells(5, i) = 1 + Cells(5, i)
                            Cells(6, i) = Cells(c.Row, "[COLOR=red][B]C[/B][/COLOR]") + Cells(6, i)
                        End If
                    End If
                Next i
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> ilkadres
        End If
    End With
 
End Sub
.
 
Hocam diyelim ki Ahmet adlı şahsın son iki satışı. Hangi ürünleri satmış ve bunların tutarı nedir gibi. F4 ü ölçüt olarak koymamın sebebi de şu : Ola ki ben son iki satışa değil de son 3 satışa bakmak istedim . Böyle bir durumda F4 hücresindeki değeri değiştirmek yeterli olacaktır. İlginiz için çok teşekkür ederim. Emeğinize sağlık :)
 
#2 numaralı mesajı güncelledim, tekrar denermisiniz.
 
#2 numaralı mesajı güncelledim, tekrar denermisiniz.

Hocam emeğinize sağlık. Güzel olmuş. Çok teşekkürler . Kodların mantığını da zamanla çözerim herhalde. Zira benim pek antrenmanlı olduğum bir alan değil.
Mesela D sütununa veri ekledim. Kendi kendime deneme yaptım. Olmadı. Hocam
tutar toplamı olarak D sütunundaki verileri kulllansaydık kodların hangi kısmı değişecekti ? Karşılaştırma yaparak kodların mantığını çözebilirim diye düşünüyorum. Bir kez daha emeğinize , yüreğinize sağlık. Teşekkürler ?
 
#2 numaralı mesajda kırmızı işaretli bölümler toplamları almak için kullandığım sütun adlarıdır. Siz buna göre kırmızı bölüme D yazarsanız D sütunundaki değerleri toplayacaktır.

.
 
Geri
Üst