• DİKKAT

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

Sayfalardaki aynı hücreyi toplama

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,490
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Arkadaşlar. Umarım doğru anlatabilirim. Ben bir dosya yaptım. İçinde bir sürü sayfa var, ve bir sürü sayfa eklenecek. Yani sayfa ekle diyorum sayfa adı girip sayfa adı girerek sayfa eklemiş oluyorum.
Şimdi şöyle. Bütün sayfalarda G36 (olsun mesela) numaralı hücrelerin toplamını versin bana. (sonradan eklenenleri de eklesin üzerine ama) ANA SAYFA adlı sayfada "GENEL TOPLAM" dediğim yere yazsın.
Umarım imkansız bir şey istemedim.
Şimdiden çok ama çok teşekkür ederim.
 
Merhaba,

Deneyiniz.

=TOPLA('ilksayfaadı:sonsayfaadı'!G36)

İstediğiniz bu değilse küçük bir örnek dosya ekleyerek açıklar mısınız.
 
Merhaba,

Deneyiniz.

=TOPLA('ilksayfaadı:sonsayfaadı'!G36)

İstediğiniz bu değilse küçük bir örnek dosya ekleyerek açıklar mısınız.
Hocam, ilginiz için teşekkür ederim. Hemen deniyorum olmazsa örnek dosya hazırlarım.
 
@Ömer hocam, ya olmadı ya ben yapamadım.
Örnek dosya ekledim.
Teşekkür ederim.
 

Ekli dosyalar

İlk ve son sayfa bölümlerini kendi dosyanıza uyarlamanız gerekirdi.

Deneyiniz.

=TOPLA('wer:yuo'!B3)
 
İlk ve son sayfa bölümlerini kendi dosyanıza uyarlamanız gerekirdi.

Deneyiniz.

=TOPLA('wer:yuo'!B3)
Hocam yazdım, olanları topladı. Ancak yeni bir sayfa açtım. B3 hücresine rakam yazdım. Üzerine toplamadı.
 
Eğer yeni açtığınız sayfayı you sayfasından önceye taşırsanız toplar. Yani ilk ve son sayfa her zaman formülde yazdığı gibi olmalı yeni sayfaları bu iki sayfa aralığına taşımanız gerekir.
Bu şekilde işinize yaramazsa makro kullanmak gerekir?
Ya toplam makro ile yapılır yada açtığınız sayfayı makro ile bu aralığa taşınır.?
 
Eğer yeni açtığınız sayfayı you sayfasından önceye taşırsanız toplar. Yani ilk ve son sayfa her zaman formülde yazdığı gibi olmalı yeni sayfaları bu iki sayfa aralığına taşımanız gerekir.
Bu şekilde işinize yaramazsa makro kullanmak gerekir?
Ya toplam makro ile yapılır yada açtığınız sayfayı makro ile bu aralığa taşınır.?
Hocam, sayfalar gözükmüyor zaten. Butonla açılan her sayfayı en sona açıyor. Yani taşıma olanağı yok. Bunu makro ile yapmak mümkün değil mi.
Size de zahmet veriyorum ama.
 
Yeni sayfaları nasıl açıyorsunuz.
 
Çözüm isteğine göre farklı bir çok yol uygulanabilir. Makro ile iki örnek;

Buton ile hesaplama;
Kod:
Sub topla()
   
    Dim i As Integer
   
    Application.ScreenUpdating = False
    Sheets("ANA SAYFA").Select
    Range("C2") = ""
   
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                Range("C2") = Range("C2") + .Range("B3")
            End If
        End With
    Next i
   
End Sub


KTF ile hesaplama; kullanımı hücrede: =sayfada_topla(B3)
Kod:
Function sayfada_topla(hucre As Range)
   
    Dim i As Integer, topla As Double

    Application.Volatile True

    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                topla = topla + .Range("B3")
            End If
        End With
    Next i
   
    sayfada_topla = topla

End Function
 
Çözüm isteğine göre farklı bir çok yol uygulanabilir. Makro ile iki örnek;

Buton ile hesaplama;
Kod:
Sub topla()
  
    Dim i As Integer
  
    Application.ScreenUpdating = False
    Sheets("ANA SAYFA").Select
    Range("C2") = ""
  
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                Range("C2") = Range("C2") + .Range("B3")
            End If
        End With
    Next i
  
End Sub


KTF ile hesaplama; kullanımı hücrede: =sayfada_topla(B3)
Kod:
Function sayfada_topla(hucre As Range)
  
    Dim i As Integer, topla As Double

    Application.Volatile True

    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                topla = topla + .Range("B3")
            End If
        End With
    Next i
  
    sayfada_topla = topla

End Function
Hocam, butonla olan sorunsuz çalıştı. Butona tıklasak yeterli. Sizi daha fazla meşgul etmeye gerek yok.
Çok teşekkür ederim. Emeğinize sağlık.
 
Sorun değil. Farklı bir düşünceniz farsa o şekilde de yeniden yazabilirim.
 
@Ömer hocam, rahatsız ediyorum yine ama. Çok güzel çalışıyor ama, mesela test sayfasında B3 hücresinde 1000 yazıyor. Fiyat güncellenmiş. 2000 olmuş ANA SAYFA'da 2000 yazmıyor. 2000 rakamını 1000'in üzerine ekleyip 3000 yazıyor.
 
Çözüm isteğine göre farklı bir çok yol uygulanabilir. Makro ile iki örnek;

Buton ile hesaplama;
Kod:
Sub topla()
  
    Dim i As Integer
  
    Application.ScreenUpdating = False
    Sheets("ANA SAYFA").Select
    Range("C2") = ""
  
    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                Range("C2") = Range("C2") + .Range("B3")
            End If
        End With
    Next i
  
End Sub


KTF ile hesaplama; kullanımı hücrede: =sayfada_topla(B3)
Kod:
Function sayfada_topla(hucre As Range)
  
    Dim i As Integer, topla As Double

    Application.Volatile True

    For i = 1 To Worksheets.Count
        With Sheets(i)
            If .Name <> "ANA SAYFA" Then
                topla = topla + .Range("B3")
            End If
        End With
    Next i
  
    sayfada_topla = topla

End Function
Hocam KTF ne demek?
 
Yeni sayfaları nasıl açıyorsunuz.
Kod:
Sub SAYFA_KOPYALA()
    Dim SAYFA_ADI As Variant

    SAYFA_ADI = Application.InputBox("sayfa adı giriniz.")

    If SAYFA_ADI = False Then
    MsgBox "İşleminiz iptal edilmiştir.", vbInformation
    Exit Sub: End If

    If SAYFA_ADI = "" Then
    MsgBox "Lütfen Sayfa adı giriniz. İşleminiz iptal edilmiştir.", vbInformation
    Exit Sub: End If

    Sheets("SABLON").Copy after:=Sheets(Sheets.Count)
  
    On Error Resume Next
    ActiveSheet.Name = SAYFA_ADI
    If Err = 1004 Then
    MsgBox "Aynı isimde sayfa bulunmaktadır. Eklenen son sayfa silinecektir.", vbCritical, "Dikkat !"
    Application.DisplayAlerts = False
    ActiveSheet.Delete
    Application.DisplayAlerts = True
 
    End If
  
End Sub

SABLON adlı sayfayı kopyalıyor hocam.
 
Hocam KTF ne demek?

KTF: Kullanıcı Tanımlı Fonksiyon

Makro kullanarak yerleşik fonksiyon gibi istediğimiz şartları vererek yeni bir fonksiyon oluşturduk. Verdiğim kodları module kopyalayıp sayfada herhangi bir hücreye formülde olduğu gibi,

=sayfada_topla(B3)

yazarsanız istediğiniz sonucu alırsınız.
 
Anladım, diğer yolla çözüldüğü için buna gerek kalmıyor sanırım.
Hocam, sütunda son dolu hücreyi bularak rakam geldiği için. Sütun boş olursa #YOK yazdığı için I1001 hücresinde. Bu sefer toplama yapmıyor. TYPE MISMATCH yazıyor.
 
Tam söylediğinizi anlayamadım, diğer açtığınız konuyla bağlantılı sanırım.

=EĞERHATA(ARA(2;1/(I6:I1000<>"");I6:I1000);0)
 
Tam söylediğinizi anlayamadım, diğer açtığınız konuyla bağlantılı sanırım.

=EĞERHATA(ARA(2;1/(I6:I1000<>"");I6:I1000);0)
Hocam, bu benim istediğim gibi olmamış. İstediğimden hayal ettiğimden 100 kat süper olmuş ?
Çok teşekkür ederim. Emeğinize sağlık.
 
Geri
Üst