Sheet' lerdeki değeri 0 olanları Ana Sayfaya bildirme

Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Merhaba, Çalıştığım dsoyada Anasayfa+5 adet sheet var. Ana sayfaya bu 5 adet sheetten birim fiyatlarla yapılan hesap sonuçları geliyor. Bu sheetlerdeki birim fiyatlar değişik hücrelerden geliyor..Yani tek b.fiyatlar...sütunda değiller... Benim yapmak istediğim Ana sayfada işlem yaparken diğer sheetlere açmadan bazı birim fiyatların "0" olanlarından haberim olması. Bunu tektek yapmak mümkün ama ama birim fiyatlar oldukça fazla. Bunun için kolay yol ne olabilir?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,482
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Konuyla ilgili örnek dosya eklermisiniz.
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
arkadaşların "bu da sorulur mu " dediğini duyar gibiyim.

Yalnız benim sheetlerde toplam 5240 satır var... bunları kısa yoldan kod ile nasıl kontrol edebilirim o yüzden sormuştum... hücrelere if fonksiyonları girip kontrol etmem çok zaman ister :(
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
dosyam 16 mb boyutunda :( siz örneğin
Sheet1 de I8-I289
Sheet2 de G3-G120
Sheet3 de K20-K153
...
(diğer hücreler oldukça karışık, onları sizin örneğinize düzenleyeceğim artık)
Hücrelerinde değer 0 sıfır olduğunda bana ana sayfada örneğin "16 adet birim fiyatın değeri 0' dır" diye bir uyarı versin.

(Amacım haberim olmadan yada yanlışlıkla silinen birim fiyatların Toplam Maliyete olan olmsuz etkisini ortadan kaldırmaktır)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,482
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu çalışmanızın ThisWorkbook bölümüne uygulayın. Dosyanızı kaydedip kapatın. Tekrar açtığınızda belirtmiş olduğunuz hücreler kontrol edilecek ve size sayısı bildirilecektir.

Kod:
Option Explicit
 
Private Sub Workbook_Open()
    Dim SAYFA As Worksheet
    Dim HÜCRE As Range, SAY As Long
    
    For Each SAYFA In Worksheets
    If SAYFA.Name = "Sayfa1" Then
        For Each HÜCRE In SAYFA.Range("I8:I289")
        If HÜCRE.Value = 0 Then SAY = SAY + 1
        Next
    ElseIf SAYFA.Name = "Sayfa2" Then
        For Each HÜCRE In SAYFA.Range("G3:G120")
        If HÜCRE.Value = 0 Then SAY = SAY + 1
        Next
    ElseIf SAYFA.Name = "Sayfa3" Then
        For Each HÜCRE In SAYFA.Range("K20:K153")
        If HÜCRE.Value = 0 Then SAY = SAY + 1
        Next
    End If
    Next
 
    If SAY > 0 Then
    MsgBox "Toplam ; " & SAY & " adet birim fiyatı sıfır olan ürün bulunmuştur.", vbExclamation, "Dikkat !"
    Else
    MsgBox "Tüm birim fiyatlar kontrol edilmiştir. Sıfır birim fiyatlı ürün bulunamamıştır.", vbInformation
    End If
End Sub
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Korhan bey çok teşekkürler...kod çalıştı :D elinize sağlık
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Korhan bey özür dilerim, kodu denedim çalıştı ama bazı fiyatları Sıfırladığım halde kapatıp açtığımda sıfırları saymadı ve "sıfır ...bulunamadı" dedi yine....

Option Explicit

Private Sub Workbook_Open()
Dim SAYFA As Worksheet
Dim HÜCRE As Range, SAY As Long

For Each SAYFA In Worksheets
If SAYFA.Name = "Sayfa5" Then
For Each HÜCRE In SAYFA.Range("L4:L91")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Sayfa9" Then
For Each HÜCRE In SAYFA.Range("G3:G120")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Sayfa8" Then
For Each HÜCRE In SAYFA.Range("K23:K153")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Sayfa6" Then
For Each HÜCRE In SAYFA.Range("I8:I285")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
End If
Next

If SAY > 0 Then
MsgBox "Toplam ; " & SAY & " adet birim fiyatı sıfır olan ürün bulunmuştur.", vbExclamation, "Dikkat !"
Else
MsgBox "Tüm birim fiyatlar kontrol edilmiştir. Sıfır birim fiyatlı ürün bulunamamıştır.", vbInformation
End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,482
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sıfırladığınız alanlar ile kod içinde tanımladığınız alanlar eşleşiyormu bunu kontrol edin.
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Korhan bey sheet adlarını problem yaratmayacağı düşüncesiyle orjinal haliyle yazmıştım yani sayfa9 yazmıştım (SıhhiTesisat olmalıymış)...şimdi değiştirdiğim isimlerle değiştirince sorun düzeldi... tekrar teşekkürler
 
Katılım
26 Kasım 2007
Mesajlar
308
Excel Vers. ve Dili
Excel 2003
Korhan bey verdiğiniz kodu dosya açılışına uyguladıktan sonra dosyada çalışma esnasında da SIFIRları görebilmem için ana sayfaya her sheet için ayrı ayrı butonlar ekleyip sıfırları saymasını istedim. Kodlar tek bir sheet' teki sıfırların toplamını değil de ilk tanımlanan aralıktaki toplam sıfırları sayıyor.

Private Sub CommandButton5_Click()
Dim SAYFA As Worksheet
Dim HÜCRE As Range, SAY As Long

For Each SAYFA In Worksheets
If SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("K23:K153")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("H3:I20")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("K12:K20")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("M3:M4")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
ElseIf SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("M12:M20")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
End If
Next
If SAY > 0 Then
MsgBox "Doğramalar listesinde Toplam ; " & SAY & " ADET birim fiyatı SIFIR olan ürün bulunmuştur.", vbExclamation, "Dikkat !"
Else
MsgBox "Tüm birim fiyatlar kontrol edilmiştir. Sıfır birim fiyatlı ürün bulunamamıştır.", vbInformation
End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,482
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Yazdığınız mantığa göre kodlar doğru çalışıyor fakat sizin isteğinize karşılık vermiyor. Önermiş olduğum genel amaçlı kullanılamaz. Siz aktif sayfadaki sıfır değerlerini saydırmak istiyorsanız kodda sadece tek sayfa ismi ve aralığı bırakmalısınız.

Örnek olarak aşağıdaki yapıyı kullanmalısınız. Bu kod sadece "Dogramalar" isimli sayfada kullanılmalıdır. Aralıkları kendinize göre düzenleyiniz.

Kod:
Private Sub CommandButton5_Click()
Dim SAYFA As Worksheet
Dim HÜCRE As Range, SAY As Long

For Each SAYFA In Worksheets
If SAYFA.Name = "Dogramalar" Then
For Each HÜCRE In SAYFA.Range("K23:K153")
If HÜCRE.Value = 0 Then SAY = SAY + 1
Next
End İf
Next
If SAY > 0 Then
MsgBox "Doğramalar listesinde Toplam ; " & SAY & " ADET birim fiyatı SIFIR olan ürün bulunmuştur.", vbExclamation, "Dikkat !"
Else
MsgBox "Tüm birim fiyatlar kontrol edilmiştir. Sıfır birim fiyatlı ürün bulunamamıştır.", vbInformation
End If
End Sub
 
Üst