• DİKKAT

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

aylık olarak bir hücreyi kayıt altına almak

Katılım
12 Eylül 2006
Mesajlar
17
Excel Vers. ve Dili
2005
Arkadaşlar merhaba sizler için belki çok basit ama benim için önemli bir konuda takıldım değerli fikirleriniz için şimdiden teşekkür ederim.
Toplam hücrem var bu günlük olarak değişiyor bunu stok toplamı gibi düşünebilrsiniz.
her ay sonu aylık olarak bu rakamın bir tabloda veri olarak toplanmasını istiyorum
ocak toplam
subat toplam
.....
aylık olarak güncel bir tablom olsun istiyorum.Mümkünmüdür böyle bir şey
 
Örnek bir dosya eklemeniz gerekli. Daha açıklayıcı olur ve aradığınız cevabı çok daha kısa sürede bulabilirsiniz böylece.
 
Örneğin aşağıdaki kodları ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırırsanız, B2 hücresi her değiştiğinde, C2'deki tarihe göre ilgili ayın stoğunu değiştirir:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [B2]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If IsNumeric(Target) = True Then
    For i = 4 To 15
        If Year(Cells(i, "A")) = Year([C2]) And Month(Cells(i, "A")) = Month([C2]) Then
            Cells(i, "B") = Target
        End If
    Next
End If
End Sub

Ya da aşağıdaki kodları bir modüle kopyalayıp çalıştırırsanız istediğiniz işlemi yapar:

Kod:
Sub stok()
If [B2] = "" Then Exit Sub
If IsNumeric([B2]) = True Then
    For i = 4 To 15
        If Year(Cells(i, "A")) = Year([C2]) And Month(Cells(i, "A")) = Month([C2]) Then
            Cells(i, "B") = [B2]
        End If
    Next
End If
End Sub
 
yusuf bey çok teşekkür ederim kod çalışıyor fakat şöyle bir sorun ile karşılaştım.Target hücresi benim dosyamda diğer hücrelerini toplamını veren bir hücre .hücreyi elle değiştirdiğimizde kod çalışıyor fakat formülden dolayı hücrede değişiklik olduğunda kod değişikliği algılamıyor
 
Örnek dosyanızda buna ilişkin herhangi bir bilgi yoktu. Dolayısıyla ben de onu dikkate al(a)madım.

Bu durumda toplam hücresini değişmesini sağlayan hücreler belirlenip o hücreler Target olarak belirtilmelidir. Ayrıca kod da aşağıdaki gibi değiştirilmelidir.

Cells(i, "B") = [B2]

Olmalıdır.
 
Haklısınız çalıştığım dosya oldukça kapsamlı olduğu için basite indirgemeye çalıştım bunun sorun olacağını düşünmemiştim.Toplamını aldığım hücrelerde yine sumif ile arka sayfalardan verilerin toplamını getiriyor maalesef
 
yusuf bey galiba bu şekilde olacak fakat birden fazla hücreyi target olarak nasıl seçebilirim
 
Bu işlem o hücrenin değişmesini sağlayan ve el ile veri girilen her hücrenin bulunduğu sayfa için ayrı ayrı yapılmalıdır. Ancak bunun için gerçek dosyanızla aynı yapıda olan ama özel bilgiler içermeyen bir örnek dosya yüklemelisiniz ki dosyaya göre çözüm oluşturalım.
 
Yusuf bey gösterediğiniz gibi kodu yazdım ama veriler arka sayfayada elle girilmiyor veriler veri tabanından geliyor.toplamı aldığımız hücre değerini kopyala yapıştır yapabilsek o bile yetecek esasında.verdiğiniz kod tam istediğim gibi oysa tek sorun elle değişiklik yapma zorunluluğu
 
Muhtemelen D8 hücresine tarihi el ile giriyorsunuz. Bu hücreyi değiştirdiğinizde belirttiğiniz işlemin olması için aşağıdaki kodu kullanabilirsiniz:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D8]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If IsDate(Target) = True Then
    For i = 11 To 22
        If Year(Cells(i, "A")) = Year([Target]) And Month(Cells(i, "A")) = Month([Target]) Then
            Cells(i, "B") = [B2]
        End If
    Next
End If
End Sub
 
D8 hücresinde örnek açısından elle giriş bıraktım o hücrede =bugün() fonksiyonunu kullanacağım
 
Eski kod yerine aşağıdaki kodu kullanırsanız Stok sayfasını her açtığınızda istediğiniz işlem gerçekleşir:

Kod:
Private Sub Worksheet_Activate()
If [D8] = "" Then Exit Sub
If IsDate([D8]) = True Then
    For i = 11 To 22
        If Year(Cells(i, "A")) = Year([D8]) And Month(Cells(i, "A")) = Month([D8]) Then
            Cells(i, "B") = [B8]
        End If
    Next
End If

End Sub
 
Geri
Üst