Her çalışma sayfasındaki a4 hücrelerinin toplamını tek bir hücrede almak

Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
Her çalışma sayfasındaki a4 hücrelerinin toplamını tek bir hücrede almak

sn hocalarım herkese hayırlı günler

yapmaya çalıştığım bir döngüyü tamamlayamadım.bu konuda bana yardımcı olabilir misiniz?

bir çalışma kitabına buton ile çalışma sayfaları ekliyorum.(kaç tane olduğu belli değil ihtiyaç oldukça ekleniyor.)
yapmak istediğim bir döngü kurarak sayfa1 deki a1 hücresine bütün çalışma sayfalarının a4 hücrelerindeki verilerin toplamını aldırmak.şöyle denedim;

For a = 1 To Sheets.Count
Sheets("sayfa1").Range(a1) = Sheets(a).Range(a4) +...
Next

yardımlarınız için şimdiden teşekkür ederim.
saygılar:yardim:
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şu şekilde deneyiniz.

İlkönce hücrenin toplama işlemine uygun olup olmadığına bakıyoruz. Sonra hucre adlı değişkenin içinde, -döngü ilerledikçe- A4 hücrelerinin toplamını biriktiriyoruz.

Kod:
hucre = 0
For i = 1 To Sheets.Count
    If Sheets(i).Name = "Sayfa1" Then GoTo 10
    If IsNumeric(Sheets(i).[A4]) Then: hucre = hucre + Sheets(i).[A4]
10
Next i
Sheets("Sayfa1").[A4] = hucre
 
Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
sn fpc çok teşekkür ederim aynen istediğim böyleydi ancak bu kodlarda anlayamadığım bişeyler var acaba zahmet olmazsa açıklama yapabilir misiniz?
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Şöyle açıklayayım.​

Kod:
hucre = 0
İlk başta hucre değişkeni boşaltılıyor(sıfırlanıyor). Çünkü hucre değişkeni public olarak (aldığı değere projenin her yerinde ulaşılabilir) veya general declaration'da tanımlanırsa, eski değerini hatırlar ve bu da bu prosedür için işimize gelmez. Onun için; dünyayı yeniden kuruyormuş gibi, hucre adlı değişkenini resetlemiş oluyoruz.​

Kod:
For i = 1 To Sheets.Count
Bu satırla, bütün sayfaları tara diyoruz.
Kod:
If Sheets(i).Name = "Sayfa1" Then GoTo 10
Eğer denk gelen sayfanın ismi Sayfa1 ise bunu atla ve 10'a git. Çünkü Sayfa1'in A4 hücresini okumasına gerek yok, biz buraya zaten diğer sayfaların A4 hücrelerinin toplamı yazacağız.
Kod:
If IsNumeric(Sheets(i).[A4]) Then: hucre = hucre + Sheets(i).[A4]
Eğer denk gelen sayfanın A4 hücresindeki değeri, nümerik(sayısal) ise; hucre değişkenine, A4 hücresinin değerini ekle. Eğer bu değer nümerik değilse, bir sonraki satıra geç (yani bu sayfayı atla)
Kod:
10
Gidilmesi istenen satır belirteci
Kod:
Next i
döngünün sonu
Kod:
Sheets("Sayfa1").[A4] = hucre
Bütün sayfalar tarandıktan sonra, hucrenin içinde biriken A4 değerleri toplamını sayfa1'in A4 hücresine yaz.​
 
Katılım
14 Ekim 2006
Mesajlar
267
Excel Vers. ve Dili
excel2003 Tr
süpersiniz çok teşekkür ederim ne kadar teşşekkür etsem azdır hocam. saygılar
emeğinize sağlık bana zaman ayırdığını için de teşekkür ederim.
 
Katılım
27 Haziran 2007
Mesajlar
202
Excel Vers. ve Dili
2007
Türkçe
merhaba hocam aynı işlemi sadece a4 için değilde kople satı yada a4 den k4 e kadar şeklinde yapabilirmiyiz. Teşekürler....
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Örnek üzerinden gidersek; A4:K4 aralığı için; şu şekilde

Kod:
hucre = 0
For i = 1 To Sheets.Count
    If Sheets(i).Name = "Sayfa1" Then GoTo 10
        For j = 1 To 11
            If IsNumeric(Sheets(i).Cells(4, j)) Then: hucre = hucre + Sheets(i).Cells(4, j)
        Next j
10
Next i
Sheets("Sayfa1").[A4] = hucre
 
Katılım
27 Haziran 2007
Mesajlar
202
Excel Vers. ve Dili
2007
Türkçe
hocom demek istediğim tüm sayfalardaki a4 leri sayfa1 deki a4 e , tüm sayfalardaki b4 leri sayfa1 deki b4 e ve k4 ekadar bu şekilde toplasın istemiştim teşekürler.....
 
Son düzenleme:

Korhan Ayhan

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

Aşağıdaki kodu denermisiniz.

Kod:
Sub SAYFALARI_TOPLA()
    [A4:K4] = ""
    For X = 1 To Sheets.Count
    For Y = 1 To 11
    Cells(4, Y) = Cells(4, Y) + Sheets(X).Cells(4, Y)
    Next: Next
End Sub
 
Üst