• DİKKAT

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

macro-vba toplama işlemi

  • Konbuyu başlatan Konbuyu başlatan mesuutt
  • Başlangıç tarihi Başlangıç tarihi
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
 
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.
 
Sy. Korhan Ayhan ;
Teşekkür ederim. Tam istediğim gibi oldu Kusura bakmayın sizi çok meşgul ettim.
 
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
 
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.
 
Sy. Korhan Ayhan ;
ilginizden ve yardımınızdan dolayı teşekkür ederim.
 
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
 
Bir pozitif değeri -1 ile çarparsanız eksi değere dönüşür. Yani vba tarafında da matematik kuralları geçerlidir.
 
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.
 
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 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.
 
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
 
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"))
 
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.
 
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.
 
Çözüldü ise sıkıntı yok , iyi çalışmalar..
 
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
 
Geri
Üst