macro-vba toplama işlemi

Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;

"Option Explicit" sildim çalıştı teşekkür ederim. aşağıdaki kodu 38. satıra kadar yapabilir miyiz. çünkü Sheets("Sayfa2").Range("B39") = WorksheetFunction.Sum(Sheets("Sayfa2").Range("b2:b38")) bu kodun üstüne yazıyor .Teşekkür ederim.

Dim s1 As Worksheet: Dim s2 As Worksheet: Dim s3 As Worksheet: Dim i As Integer
Set s1 = Sheets("HESAP FİŞİ"): Set s2 = Sheets("Sayfa2")
Set wf = WorksheetFunction
son1 = s1.Cells(s1.Rows.Count, "E").End(3).Row
son2 = s2.Cells(s2.Rows.Count, "A").End(3).Row
For i = 2 To son2
s2.Range("B" & i) = wf.SumIf(s1.Range("E2:E" & son1), s2.Range("A" & i), s1.Range("F2:F" & son1))
Next i

bu kod sadece Sayfa2" A sutunu 38. satıra kadar işlem yapacak
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kod içinde bulunan "son2" değişkeni eğer 38 değerinden farklı bir değer alıyorsa aşağıdaki satırda koyu renkli yere 38 yazarak sonuca gidebilirsiniz.

For i = 2 To son2

Kodu F8 tuşu ile adım adım çalıştırarak "son2" değişkeninin aldığı değer vba ekranında takip edebilirsiniz.
 
Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;
Teşekkür ederim. Tam istediğim gibi oldu Kusura bakmayın sizi çok meşgul ettim.
 
Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;
B,C,D vb. diğer sutunlar için For i = 3 To son38 ,For i = 4 To son38 Şeklinde yapıyorum lakin Dim s1 As Worksheet: hatası veriyor bunun için ne yapabilirim. Teşekkür ederim.

229226




229227
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığınız resimde iki kez aynı dim tanımlamalarını yapmış görünüyorsunuz. Bir kez tanımlamanız yeterli olacaktır.
 
Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;
ilginizden ve yardımınızdan dolayı teşekkür ederim.
 
Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;

İlginiz ve yardımınız için teşekkür ederim. aşağıda ki kodu hücreye - eksi olarak nasıl getirebilirim.

Set s1 = Sheets("HESAP FİŞİ"): Set s2 = Sheets("Sayfa2")
Set wf = WorksheetFunction
son1 = s1.Cells(s1.Rows.Count, "E").End(3).Row
son2 = s2.Cells(s2.Rows.Count, "A").End(3).Row
For i = 2 To 38
s2.Range("M" & i) = wf.SumIf(s1.Range("E2:E" & son1), s2.Range("A" & i), s1.Range("Q2:Q" & son1))
Next i
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir pozitif değeri -1 ile çarparsanız eksi değere dönüşür. Yani vba tarafında da matematik kuralları geçerlidir.
 
Katılım
13 Eylül 2012
Mesajlar
97
Excel Vers. ve Dili
2007 türkçe
Altın Üyelik Bitiş Tarihi
19-07-2024
Sy. Korhan Ayhan ;
ilk başta söylediğiniz şeyleri anlayamıyorum sebebi ise kodları bilmediğimden kaynaklanıyor sonra söylediklerinizin üzerinde biraz düşünüm ondan sonra kurcalamaya başlayınca yapıyorum. Dedim ki Korhan Ayhan hocam bu işi biliyor :) . Şimdi Bir pozitif değeri -1 ile çarparsanız eksi değere dönüşür. Yani vba tarafında da matematik kuralları geçerlidir. bu dediğiniz üzerinde düşünüm kurcalayarak bulacağım inşaallah. İlginiz ve yardımınız için teşekkür ederim.
 
Katılım
10 Haziran 2010
Mesajlar
31
Excel Vers. ve Dili
vb
Merhaba sayfa adlarını ana sayfadan aldığım kod neden çalışmıyor yardım eder misiniz?

For i = 3 To 5

Sayfa_Adi = Sheets("anasayfa").Range("A" & i)

[d15] = WorksheetFunction.Sum(Sheets(Sayfa_Adi).Range("b2:af2"))

Next
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Merhaba sayfa adlarını ana sayfadan aldığım kod neden çalışmıyor yardım eder misiniz?

For i = 3 To 5

Sayfa_Adi = Sheets("anasayfa").Range("A" & i)

[d15] = WorksheetFunction.Sum(Sheets(Sayfa_Adi).Range("b2:af2"))

Next

Merhaba , verdiğiniz kodlardan ne yapmak istediğiniz tam olarak anlaşılmıyor , normal şartlarda çalışmaması için bir sebep yok , ne yapmak istediğinizi biraz daha açıklarsanız yardımcı olunabilir.
 
Katılım
10 Haziran 2010
Mesajlar
31
Excel Vers. ve Dili
vb
anasayfa adlı sayfanın a3, a4, a5 hücrelerinde sayfa adları var. Bu sayfaların b2 ile af2 hücreleri arasındaki 31 güne ait değerleri toplayıp d15, d16, d17 hücrelerine yazmak istiyorum
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Aşağıdaki gibi deneyiniz..

Kod:
[d15] = [d15] + WorksheetFunction.Sum(Sheets(Sayfa_Adi).Range("b2:af2"))
Yada

Kod:
Cells(i + 12, "D") = WorksheetFunction.Sum(Sheets(Sayfa_Adi).Range("b2:af2"))
 
Katılım
10 Haziran 2010
Mesajlar
31
Excel Vers. ve Dili
vb
Cevabınız için teşekkür ederim ayrıca emeğinize de.
Benim sorunum sizin değiştirdiğiniz eşittir den önceki kısım değil aşağıdaki formülde kalın yazdığım kısımda bu kısma tırnak içerisinde sayfa adını elle girince sorun çözülüyor ancak değişkeni yazdığım da "subscript out of range" hatası alıyorum.

WorksheetFunction.Sum(Sheets(Sayfa_Adi).Range("b2:af2")) >>> hata veriyor
WorksheetFunction.Sum(Sheets("Sayfa1").Range("b2:af2")) >>> hata vermiyor.
 
Katılım
10 Haziran 2010
Mesajlar
31
Excel Vers. ve Dili
vb
Sorunu çözdüm değişkeni string değeri vermediğim için sorun oluşuyormuş
Dim Sayfa_Adi As String
sorunumu çözdü tekrar teşekkürler.
 

EmrExcel16

Destek Ekibi
Destek Ekibi
Katılım
1 Kasım 2012
Mesajlar
1,524
Excel Vers. ve Dili
Office 365 Türkçe
Çözüldü ise sıkıntı yok , iyi çalışmalar..
 
Katılım
8 Nisan 2011
Mesajlar
3
Excel Vers. ve Dili
office2003 turkçe
Merhaba arkadaşlar,
sayfamda çeşitli ürünler ve altlarında toplam bölümü bulunmakta, sayıları belli olmuyor. Aşağıdaki formülde sadece üstteki 2 hücreyi topluyor ama ben seçili hücrede 2 defa işaretine tıkladığımızda olan işlemin yapılmasını istiyorum. Yardımcı olabilir misiniz?

Sub boyama()
For i = 1 To 100
If Cells(i, 1) = "Toplam" Then
Cells(i, 4).Formula = "=SUM(R[-2]C:R[-1]C)"
End If
Next
End Sub
 
Üst