yazdığım formülleri makro ile yazmak istiyorum

Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Arkadaşlar aşağıda excel hücrelerine yazdığım 3 ayrı formülleri makro ile yazmak istiyorum.
yardımlarınız için şimdiden teşekkür ederim.
  • Bu formülü sayfa 1 (D) sutunu (d5) hücresinden itibaren yazılı olacak ve yaklaşık (D105) hücresine kadar olacak
  • =EĞER(C5=0;0;TOPLAM($C$4:C5))
  • =EĞER(C6=0;0;TOPLAM($C$4:C6))
  • =EĞER(C7=0;0;TOPLAM($C$4:C7)) formülde c4 sabit diğeri sıradan gidiyor

  • Bu formülü sayfa 1 (J) sutunu (J5) hücresinden itibaren yazılı olacak ve yaklaşık (J305) hücresine kadar olacak
  • =EĞER(I5=0;0;TOPLAM($I$4:I5))
  • =EĞER(I6=0;0;TOPLAM($I$4:I6))
  • =EĞER(I7=0;0;TOPLAM($I$4:I7)) formülde I4 sabit diğeri sıradan gidiyor.

  • Bu formülü sayfa 1 (K) sutunu (K5) hücresinden itibaren yazılı olacak ve yaklaşık (K305) hücresine kadar olacak
  • =EĞER(I5=0;0;M5-J5)
  • =EĞER(I6=0;0;M6-J6)
  • =EĞER(I7=0;0;M7-J7)
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,203
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

D5 Hücresine yazılan formül makro kaydet ile alındı.
sonra D5:D105 arası dolduruldu.

Diğer sütunlardaki formülleri de bu mantıkla yazdırabilirsiniz.
Örneği inceleyiniz.

Kod:
Sub FormulYaz()
    
    Range("D5").FormulaR1C1 = "=IF(RC[-1]=0,0,SUM(R4C3:RC[-1]))"
    Range("D5:D105").FillDown
    
End Sub
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Merhaba,

D5 Hücresine yazılan formül makro kaydet ile alındı.
sonra D5:D105 arası dolduruldu.

Diğer sütunlardaki formülleri de bu mantıkla yazdırabilirsiniz.
Örneği inceleyiniz.

Kod:
Sub FormulYaz()
   
    Range("D5").FormulaR1C1 = "=IF(RC[-1]=0,0,SUM(R4C3:RC[-1]))"
    Range("D5:D105").FillDown
   
End Sub
Öncelikle ilgilendiğiniz için teşekkür ederim hocam....
1-makro ile formül çalışıyor ancak formülün çalışması için her defasında makroyu çalıştır demek zorunda kaldım
2-makroyu çalıştır dediğimde hücreye formülü de yazıyor acaba formülü yazmadan direk işlem yapsa olur mu ?
 

GursoyC

Altın Üye
Katılım
7 Ocak 2015
Mesajlar
526
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
17-05-2028
Linkteki dosyayı deneyin. "yaklaşık" dediğiniz için sanırım formüllerin uzayacağı satır sayısı değişken. Bu yüzden 3 ayrı texbox yaptım. İçerisine formüllerin hangi satıra kadar uzatılmasını istiyorsanız o satır numarasını yazın.

http://dosya.co/zz3l6te9eopi/formüller.xlsm.html
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,203
Excel Vers. ve Dili
Ofis 365 Türkçe
Öncelikle ilgilendiğiniz için teşekkür ederim hocam....
1-makro ile formül çalışıyor ancak formülün çalışması için her defasında makroyu çalıştır demek zorunda kaldım
2-makroyu çalıştır dediğimde hücreye formülü de yazıyor acaba formülü yazmadan direk işlem yapsa olur mu ?
Ben sizin isteğinizi gerçekleştirmeye çalıştım.
Siz formül istediniz. Formül sonucunu değil ki?
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Ben sizin isteğinizi gerçekleştirmeye çalıştım.
Siz formül istediniz. Formül sonucunu değil ki?
Hocam haklısınız ben yanlış anlatmışım. Formul sonucu gelirmi birde makro çalıştır demeden sonuc gelirmi
 
Katılım
6 Mart 2005
Mesajlar
6,238
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Sayfa kodu olarak kopyalayınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
        Exit Sub
    End If
If Intersect(Target, [C4:C105]) Is Nothing Then GoTo 1
On Error Resume Next:
For i = 5 To 105
If Range("C" & i).Value = 0 Then
Range("D" & i) = 0
Else
Range("D" & i) = WorksheetFunction.Sum(Range("C4:C" & i))
End If
Next i
1:
If Intersect(Target, [I4:I305]) Is Nothing Then GoTo 2
For i = 5 To 305
If Range("ı" & i).Value = 0 Then
Range("j" & i) = 0
Else
Range("j" & i) = WorksheetFunction.Sum(Range("I4:I" & i))
End If
Next i
2:
If Intersect(Target, [M4:M305]) Is Nothing Then GoTo 3
For i = 5 To 305
If Range("ı" & i).Value = 0 Then
Range("K" & i) = 0
Else
Range("K" & i) = Range("M" & i) - Range("J" & i)
End If
Next i
3:
End Sub
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,203
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

İlk sorunuz için aşağıdaki kodları kullanabilirsiniz.
Döngü C sütununun son dolu satırına kadar çalışır. (Yapıyı bilmediğimden)
Diğer çözümleri kendinize uyarlayabilirsiniz.

Kod:
Sub ToplamAl()

    Dim i   As Long, _
        t   As Double
    
    t = Range("C4")
    
    For i = 5 To Cells(Rows.Count, "C").End(3).Row
        If Cells(i, "C") = 0 Then
            Cells(i, "D") = 0
        Else
            t = t + Cells(i, "C")
            Cells(i, "D") = t
        End If
    Next i
    
End Sub
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
Sayfa kodu olarak kopyalayınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then
        Exit Sub
    End If
If Intersect(Target, [C4:C105]) Is Nothing Then GoTo 1
On Error Resume Next:
For i = 5 To 105
If Range("C" & i).Value = 0 Then
Range("D" & i) = 0
Else
Range("D" & i) = Range("C4") + Range("C" & i)
End If
Next i
1:
If Intersect(Target, [I4:I305]) Is Nothing Then GoTo 2
For i = 5 To 305
If Range("ı" & i).Value = 0 Then
Range("j" & i) = 0
Else
Range("j" & i) = Range("ı4") + Range("ı" & i)
End If
Next i
2:
If Intersect(Target, [M4:M305]) Is Nothing Then GoTo 3
For i = 5 To 305
If Range("ı" & i).Value = 0 Then
Range("K" & i) = 0
Else
Range("K" & i) = Range("M" & i) - Range("J" & i)
End If
Next i
3:
End Sub
Dün yazdığım formülleri makro ile yazmak istiyorum başlıklı konuya yardım ettiğiniz için öncelikle teşekkür ederim. müsaitseniz bir iki düzeltme yapabilirmiyiz bazı hatalar çıktı.
1- kodu yerleştirdim sonra rakam girdim gayet güzel çalışıyor ancak makronun olduğu yerede delete yapınca formül sonucu gelmiyor. yeniden vba girip makroyu çalıştırmak gerekiyor.
2-formullerde bir hata gördüm örneğin 1. formulde
  • =EĞER(C5=0;0;TOPLAM($C$4:C5))
  • =EĞER(C6=0;0;TOPLAM($C$4:C6))
  • =EĞER(C7=0;0;TOPLAM($C$4:C7)) formülde c4 sabit diğeri sıradan gidiyor
örneğin d7 hücresine gelmesi gereken formül sonucu (c4+c5+c6+c7) olması gerekirken sizin formul sonucu (c4+c7) toplamının sonucunu veriyor yani aradakileri atlıyor.
 
Katılım
6 Mart 2005
Mesajlar
6,238
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
1) C , I , M Sütunlarında işlem olduğunda makro çalışır.Diğer sütunlarda işlem yapıldığında çalışmaz.
2) Formülde gerekli düzeltme yapılarak.#7 nolu iletideki kodlar yenilendi.Yeniden kopyalayınız veya ilgili yerleri değiştiriniz.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
1) C , I , M Sütunlarında işlem olduğunda makro çalışır.Diğer sütunlarda işlem yapıldığında çalışmaz.
2) Formülde gerekli düzeltme yapılarak.#7 nolu iletideki kodlar yenilendi.Yeniden kopyalayınız veya ilgili yerleri değiştiriniz.
Sayın çıtır hocam eline bilgine sağlık olmuş çok güzel çalışıyor..
Ancak son formulde bir durum meydana geldi.
K sutununa sonuç gelmiyor sebebi ise sizin dediğiniz gibi m sutununda işlem olmadı için gelmiyor. M sutununa ben formul yazdım formulden dolayı gelmiyor. Formülde M5 hücresine yazılı formül (L5+M4) dür
 
Katılım
6 Mart 2005
Mesajlar
6,238
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
  • Bu formülü sayfa 1 (K) sutunu (K5) hücresinden itibaren yazılı olacak ve yaklaşık (K305) hücresine kadar olacak
  • =EĞER(I5=0;0;M5-J5)
  • =EĞER(I6=0;0;M6-J6)
  • =EĞER(I7=0;0;M7-J7
K Stunu I sütunun dğerine bağlı I karşılığı 0 dan büyük olursa değer gelir.
 
Katılım
14 Kasım 2004
Mesajlar
297
Excel Vers. ve Dili
microsoft office professional plus 2016
  • Bu formülü sayfa 1 (K) sutunu (K5) hücresinden itibaren yazılı olacak ve yaklaşık (K305) hücresine kadar olacak
  • =EĞER(I5=0;0;M5-J5)
  • =EĞER(I6=0;0;M6-J6)
  • =EĞER(I7=0;0;M7-J7
K Stunu I sütunun dğerine bağlı I karşılığı 0 dan büyük olursa değer gelir.
hocam aşağıda vermiş olduğunuz formulu (K) sutununa yazdığımız zaman zaten birde makro ile çalışan formul var olurmu o zaman
  • =EĞER(I5=0;0;M5-J5)
  • =EĞER(I6=0;0;M6-J6)
  • =EĞER(I7=0;0;M7-J7
 

yusuf1284

Altın Üye
Katılım
17 Ocak 2015
Mesajlar
217
Excel Vers. ve Dili
Office Pro 2016 TR
Altın Üyelik Bitiş Tarihi
09-02-2028
Arkadaşlar şöyle bir şey deniyorum "=" dolayı hata vermekte yardımcı olur musunuz?

Kod:
Sub testformülyazma()
db_pb.Range("H3").Value = "=" & "EĞER((İNDİS(db_pb!$E$7:$GK$9782;KAÇINCI($F$3;$F$7:$F$9782;0);KAÇINCI(H2;$E$6:$GK$6;0)))=0;"";(İNDİS(db_pb!$E$7:$GK$9782;KAÇINCI($F$3;$F$7:$F$9782;0);KAÇINCI(H2;$E$6:$GK$6;0))))"
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,397
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Linkteki gibi kullanmalısınız.

 
Üst