Formülü makroya çevirmek

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merhaba, Makro bilgim bulunmuyor. Aşağıdaki formülü makro olarak nasıl yazabilirim. Onun üzerinden geliştireceğim. Şimdiden teşekkür ederim.

=TOPLA.ÇARPIM((Stok!$B$2:$B$4958=A95)*(Stok!$K$2:$K$4958))
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
    With Range("A1")
        .FormulaLocal = "=TOPLA.ÇARPIM((Stok!$B$2:$B$4958=A95)*(Stok!$K$2:$K$4958))"
        .Value = .Value
    End With
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer hızlı cevap için teşekkür ederim. deneyip sonucu paylaşacağım.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer Bey

Aşağıdaki şekilde kendime uyarlayıp yazdım ama ilgili hücreye hiç bir veri gelmedi. Nerede yanlış yapıyor olabilir.

With Range("n4")
.FormulaLocal = "=TOPLA.ÇARPIM((Stok!$p$2:$p$5000=b7)*(Stok!$ı$2:$ı$5000))"
.Value = .Value
End With

General - Declarations
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
.Value = .Value satırını silip çalıştırın, N4 hücresine yazılan formülü kontrol edin.
Formülde bir sorun olabilir.
sorunu bulup çözdükten sonra .Value = .Value satırını yeniden eklersiniz.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merhaba, n4 hücresine yazdığım formül çalışıyor. Fakat formülü silip macro olarak yazdığımda veri gelmiyor. Makroda çalıştır düğmesine bastığımda ise macro penceresi açılıyor ve içi boş geliyor.

bir veya birden çok şeyi yanlış yapıyorum ama neyi, bulamadım.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
.Value = .Value satırını silip makroyu çalıştırın, N4 hücresine makro formül yazacaktır bu formülü kontrol edin.

Eğer çözemezseniz dosyanızı paylaşın kontrol edelim.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer Bey
Örnek dosya ekledim. Şimdiden teşekkürler
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Örnek dosyaya göre aşağıdaki kodu kullanınız.

Kod:
Sub test()
    With Range("D5:D14")
        .FormulaLocal = "=ETOPLA(stok!$C$6:$C$16;C5;stok!$D$6:$D$16)"
        .Value = .Value
    End With
End Sub
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Merhaba.

Örnek dosyaya göre aşağıdaki kodu kullanınız.

Kod:
Sub test()
    With Range("D5:D14")
        .FormulaLocal = "=ETOPLA(stok!$C$6:$C$16;C5;stok!$D$6:$D$16)"
        .Value = .Value
    End With
End Sub
Merhaba, bu çok güzel çalıştı. elinize sağlık.
Bilmediğim için soruyorum. Çalıştır demeden otomatik çalışmasını nasıl sağlarız.
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Kod:
Sub ToplaCarpim()

    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim toplam As Double
   
    'Çalışma sayfasını "Stok" sayfası olarak ayarla
    Set ws = ThisWorkbook.Sheets("Stok")
   
    'Stok sayfasının son satırını bul
    lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
   
    'Toplamı sıfırla
    toplam = 0
   
    'Hücreleri dolaş ve koşulu kontrol et
    For i = 2 To lastRow 'Başlık satırını atlattık (2'den başlıyoruz)
        If ws.Cells(i, "B").Value = Range("A95").Value Then 'A95 hücresinin değeri ile eşleşen satırları kontrol et
            toplam = toplam + ws.Cells(i, "K").Value 'Karşılık gelen hücrenin değerini toplam değere ekle
        End If
    Next i
   
    'Sonucu ekrana yazdır
    MsgBox "Sonuç: " & toplam
Sayın Soft
Expected end sun hatası verdi. Muzaffer Beyin makroları çalıştı. Değerli cevabın için teşekkür ederim.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu Rapor sayfasının kod kısmına kopyalayın.
Rapor sayfasında c5:C14 aralığında bir değişiklik yapıldığında formül sonucunu D sütununa otomatik yazar.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Range("C5:C14"), Target) Is Nothing Then
        With Target.Offset(0, 1)
            Application.EnableEvents = False
            .FormulaLocal = "=ETOPLA(stok!$C$6:$C$16;" & Target.Address & ";stok!$D$6:$D$16)"
            .Value = .Value
            Application.EnableEvents = True
        End With
    End If
End Sub
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer Bey
Söylediğiniz gibi çok güzel çalışıyor. Fakat şöyle bir sorun var. Stok sayfasındaki değişiklik sapor sayfasına gelmiyor. Onu nasıl çözebiliriz.

Sizin de başınızı ağrıtıyorum. Kusura bakmayın.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
5,875
Excel Vers. ve Dili
2019 Türkçe
Bunu da Stok sayfasının kod kısmına kopyalayın.
Stok sayfasında C6:D16 aralığında bir değişiklik yapıldığında formül sonucunu Rapor sayfasında D sütununa otomatik yazar.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Bul As Range
    If Not Intersect(Range("C6:D16"), Target) Is Nothing Then
        With Worksheets("Rapor")
            Set Bul = .Range("C5:C14").Find(what:=Cells(Target.Row, "C"), lookat:=xlWhole)
            Application.EnableEvents = False
            With .Cells(Bul.Row, "D")
                .FormulaLocal = "=ETOPLA(stok!$C$6:$C$16;" & Bul.Address & ";stok!$D$6:$D$16)"
                .Value = .Value
            End With
            Application.EnableEvents = True
        End With
    End If
End Sub
 

teonet

Altın Üye
Katılım
20 Kasım 2005
Mesajlar
376
Excel Vers. ve Dili
Ofis 2010 Türkçe
Altın Üyelik Bitiş Tarihi
09-05-2029
Sayın Muzaffer bey
Desteğin için çok teşekkür ederim.
 
Üst