formulu sütunlarda döngü şeklinde devam ettirmek

Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
merhabalar. formda yeniyim. altta belirttiğim kodlamayı daha kısa şekilde nasıl yazabilirim. formülü satırlara doğru çoğaltabiliyorum. ama sütunlara dogru çoğaltamadım. tek tek yazmak mı gerekiyor her sütuna. normal formül yaptıgımızda mouse ile formülü sola veya saga kaydırınca formül otomatik düzenleniyor. ama wba da bunu (döngüyü) bulamadım.

s3.Range("AS" & i) = s3.Range("C" & i) - s3.Range("CE" & i)
s3.Range("AT" & i) = s3.Range("AS" & i) - s3.Range("CF" & i)
s3.Range("AU" & i) = s3.Range("AT" & i) - s3.Range("CG" & i)
s3.Range("AV" & i) = s3.Range("AU" & i) - s3.Range("CH" & i)
s3.Range("AW" & i) = s3.Range("AV" & i) - s3.Range("CI" & i)
s3.Range("AX" & i) = s3.Range("AW" & i) - s3.Range("CJ" & i)
s3.Range("AY" & i) = s3.Range("AX" & i) - s3.Range("CK" & i)
s3.Range("AZ" & i) = s3.Range("AY" & i) - s3.Range("CL" & i)
s3.Range("BA" & i) = s3.Range("AZ" & i) - s3.Range("CM" & i)
s3.Range("BB" & i) = s3.Range("BA" & i) - s3.Range("CN" & i)
s3.Range("BC" & i) = s3.Range("BB" & i) - s3.Range("CO" & i)
s3.Range("BD" & i) = s3.Range("BC" & i) - s3.Range("CP" & i)
s3.Range("BE" & i) = s3.Range("BD" & i) - s3.Range("CQ" & i)
s3.Range("BF" & i) = s3.Range("BE" & i) - s3.Range("CR" & i)
s3.Range("BG" & i) = s3.Range("BF" & i) - s3.Range("CS" & i)
s3.Range("BH" & i) = s3.Range("BG" & i) - s3.Range("CT" & i)
s3.Range("BI" & i) = s3.Range("BH" & i) - s3.Range("CU" & i)
s3.Range("BJ" & i) = s3.Range("BI" & i) - s3.Range("CV" & i)
s3.Range("BK" & i) = s3.Range("BJ" & i) - s3.Range("CW" & i)
s3.Range("BL" & i) = s3.Range("BK" & i) - s3.Range("CX" & i)
s3.Range("BM" & i) = s3.Range("BL" & i) - s3.Range("CY" & i)
s3.Range("BN" & i) = s3.Range("BM" & i) - s3.Range("CZ" & i)
s3.Range("BO" & i) = s3.Range("BN" & i) - s3.Range("DA" & i)
s3.Range("BP" & i) = s3.Range("BO" & i) - s3.Range("DB" & i)
s3.Range("BQ" & i) = s3.Range("BP" & i) - s3.Range("DC" & i)
s3.Range("BR" & i) = s3.Range("BQ" & i) - s3.Range("DD" & i)
s3.Range("BS" & i) = s3.Range("BR" & i) - s3.Range("DE" & i)
s3.Range("BT" & i) = s3.Range("BS" & i) - s3.Range("DF" & i)
s3.Range("BU" & i) = s3.Range("BT" & i) - s3.Range("DG" & i)
s3.Range("BV" & i) = s3.Range("BU" & i) - s3.Range("DH" & i)
s3.Range("BW" & i) = s3.Range("BV" & i) - s3.Range("DI" & i)
s3.Range("BX" & i) = s3.Range("BW" & i) - s3.Range("DJ" & i)
s3.Range("BY" & i) = s3.Range("BX" & i) - s3.Range("DK" & i)
s3.Range("BZ" & i) = s3.Range("BY" & i) - s3.Range("DL" & i)
s3.Range("CA" & i) = s3.Range("BZ" & i) - s3.Range("DM" & i)
s3.Range("CB" & i) = s3.Range("CA" & i) - s3.Range("DN" & i)

End Sub
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
686
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Tamamını ekleyiniz.
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Tamamını ekleyiniz.
Sub etopla()
Dim s1 As Worksheet: Dim s3 As Worksheet: Dim i As Integer
Set s1 = Sheets("cariler"): Set s3 = Sheets("hangiAy")
Set wf = WorksheetFunction
son1 = s1.Cells(s1.Rows.Count, "G").End(3).Row
son2 = s3.Cells(s3.Rows.Count, "CD").End(3).Row
For i = 6 To son2
s3.Range("B" & i) = wf.SumIf(s1.Range("F5:F" & son1), s3.Range("CD" & i), s1.Range("m5:m" & son1))
s3.Range("C" & i) = s3.Range("B" & i) - s3.Range("D" & i)
s3.Range("AS" & i) = s3.Range("C" & i) - s3.Range("CE" & i)
s3.Range("AT" & i) = s3.Range("AS" & i) - s3.Range("CF" & i)
s3.Range("AU" & i) = s3.Range("AT" & i) - s3.Range("CG" & i)
s3.Range("AV" & i) = s3.Range("AU" & i) - s3.Range("CH" & i)
s3.Range("AW" & i) = s3.Range("AV" & i) - s3.Range("CI" & i)
s3.Range("AX" & i) = s3.Range("AW" & i) - s3.Range("CJ" & i)
s3.Range("AY" & i) = s3.Range("AX" & i) - s3.Range("CK" & i)
s3.Range("AZ" & i) = s3.Range("AY" & i) - s3.Range("CL" & i)
s3.Range("BA" & i) = s3.Range("AZ" & i) - s3.Range("CM" & i)
s3.Range("BB" & i) = s3.Range("BA" & i) - s3.Range("CN" & i)
s3.Range("BC" & i) = s3.Range("BB" & i) - s3.Range("CO" & i)
s3.Range("BD" & i) = s3.Range("BC" & i) - s3.Range("CP" & i)
s3.Range("BE" & i) = s3.Range("BD" & i) - s3.Range("CQ" & i)
s3.Range("BF" & i) = s3.Range("BE" & i) - s3.Range("CR" & i)
s3.Range("BG" & i) = s3.Range("BF" & i) - s3.Range("CS" & i)
s3.Range("BH" & i) = s3.Range("BG" & i) - s3.Range("CT" & i)
s3.Range("BI" & i) = s3.Range("BH" & i) - s3.Range("CU" & i)
s3.Range("BJ" & i) = s3.Range("BI" & i) - s3.Range("CV" & i)
s3.Range("BK" & i) = s3.Range("BJ" & i) - s3.Range("CW" & i)
s3.Range("BL" & i) = s3.Range("BK" & i) - s3.Range("CX" & i)
s3.Range("BM" & i) = s3.Range("BL" & i) - s3.Range("CY" & i)
s3.Range("BN" & i) = s3.Range("BM" & i) - s3.Range("CZ" & i)
s3.Range("BO" & i) = s3.Range("BN" & i) - s3.Range("DA" & i)
s3.Range("BP" & i) = s3.Range("BO" & i) - s3.Range("DB" & i)
s3.Range("BQ" & i) = s3.Range("BP" & i) - s3.Range("DC" & i)
s3.Range("BR" & i) = s3.Range("BQ" & i) - s3.Range("DD" & i)
s3.Range("BS" & i) = s3.Range("BR" & i) - s3.Range("DE" & i)
s3.Range("BT" & i) = s3.Range("BS" & i) - s3.Range("DF" & i)
s3.Range("BU" & i) = s3.Range("BT" & i) - s3.Range("DG" & i)
s3.Range("BV" & i) = s3.Range("BU" & i) - s3.Range("DH" & i)
s3.Range("BW" & i) = s3.Range("BV" & i) - s3.Range("DI" & i)
s3.Range("BX" & i) = s3.Range("BW" & i) - s3.Range("DJ" & i)
s3.Range("BY" & i) = s3.Range("BX" & i) - s3.Range("DK" & i)
s3.Range("BZ" & i) = s3.Range("BY" & i) - s3.Range("DL" & i)
s3.Range("CA" & i) = s3.Range("BZ" & i) - s3.Range("DM" & i)
s3.Range("CB" & i) = s3.Range("CA" & i) - s3.Range("DN" & i)
Next i
MsgBox "İşlem tamamlandı", vbInformation, "BİLGİ"
End Sub
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
YADA ŞÖYLE SORAYIM .NORMAL BİR FORMULLE YAZSAYDIM (C )STUNUNA YAZDIGIM FORMULU SOLA ÇEKEREK (A) STUNUNA KADAR ÇOĞALTABİLİRDİM. WBA DA ALTTAKİ FORMULU NASIL YAZARIM.BİLMEDİĞİM İÇİN HER SÜTUNA AYRI KOD YAZIYORUM. SÜTUN SAYISI ARTTIKÇA FORMÜLE O STÜTUNUDA EKLEMEK SORUN OLACAK. DAHA KOLAY BİR YAZIŞ YOKMU.
s3.Range("C" & i) = s3.Range("F" & i) - s3.Range("I" & i)
s3.Range("B" & i) = s3.Range("E" & i) - s3.Range("H" & i)
s3.Range("A" & i) = s3.Range("D" & i) - s3.Range("G" & i)

(A) SÜTUNU

(B) SÜTUNU

(C) SÜTUNU

(D) SÜTUNU

(E) SÜTUNU

(F) SÜTUNU

(G) SÜTUNU

(H) SÜTUNU

(I) SÜTUNU

=D6-G6

=E6-H6

=F6-I6

      

=D7+G7

=E7-H7

=F7-I7

      

=D8-G8

=E8-H8

=F8-I8

      

=D9-G9

=E9-H9

=F9-I9

      

=D10-G10

=E10-H10

=F10-I10

      

=D11-G11

=E11-H11

=F11-I11

      
 
Son düzenleme:
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Tamamını ekleyiniz.
YADA ŞÖYLE SORAYIM .NORMAL BİR FORMULLE YAZSAYDIM (C )STUNUNA YAZDIGIM FORMULU SOLA ÇEKEREK (A) STUNUNA KADAR ÇOĞALTABİLİRDİM. WBA DA ALTTAKİ FORMULU NASIL YAZARIM.BİLMEDİĞİM İÇİN HER SÜTUNA AYRI KOD YAZIYORUM. SÜTUN SAYISI ARTTIKÇA FORMÜLE O STÜTUNUDA EKLEMEK SORUN OLACAK. DAHA KOLAY BİR YAZIŞ YOKMU.
s3.Range("C" & i) = s3.Range("F" & i) - s3.Range("I" & i)
s3.Range("B" & i) = s3.Range("E" & i) - s3.Range("H" & i)
s3.Range("A" & i) = s3.Range("D" & i) - s3.Range("G" & i)

(A) SÜTUNU

(B) SÜTUNU

(C) SÜTUNU

(D) SÜTUNU

(E) SÜTUNU

(F) SÜTUNU

(G) SÜTUNU

(H) SÜTUNU

(I) SÜTUNU

=D6-G6

=E6-H6

=F6-I6

=D7+G7

=E7-H7

=F7-I7

=D8-G8

=E8-H8

=F8-I8

=D9-G9

=E9-H9

=F9-I9

=D10-G10

=E10-H10

=F10-I10

=D11-G11

=E11-H11

=F11-I11

 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Lütfen büyük harf kuralına dikkat edelim..
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Lütfen büyük harf kuralına dikkat edelim..
Korhan Bey merhaba. Bilinçili yapılan bir durum değil. (dosya görüntüsünü hazırlarken dikkat ederseniz büyük harfle yazdıgım için klavye o şekilde kalmış. kural bozan bir duruma düştüysem bundan sonra tabii ki daha dikkat ederim. Sitede soruma cevap kimseden alamadım. Bu konuda yardımlarınızı rica ediyorum. Görüntüsünü attığım formülün makro yazılışını paylaşabilir misiniz.
         

(A) SÜTUNU

(B) SÜTUNU

(C) SÜTUNU

(D) SÜTUNU

(E) SÜTUNU

(F) SÜTUNU

(G) SÜTUNU

(H) SÜTUNU

(I) SÜTUNU

=D6-G6

=E6-H6

=F6-I6

      

=D7+G7

=E7-H7

=F7-I7

      

=D8-G8

=E8-H8

=F8-I8

      

=D9-G9

=E9-H9

=F9-I9

      

=D10-G10

=E10-H10

=F10-I10

      

=D11-G11

=E11-H11

=F11-I11

      
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Paylaştığını görselde A sütununda bir hücrede toplama işlemi var. Sanırım hatalı olmuş.

Excel hücrelerine makro ile formül yazmak için aşağıdaki kod yapısını kullanabilirsiniz.

Kod içindeki .Value = .Value satırı formülü değere çevirmektedir. Dilerseniz o satırı silebilirsiniz. Hücre aralıklarını asıl dosyanıza göre revize edersiniz.

C++:
Option Explicit

Sub Cells_Insert_Formula()
    With Range("A6:A11")
        .Formula = "=D6-G6"
        .Value = .Value
    End With

    With Range("B6:B11")
        .Formula = "=E6-H6"
        .Value = .Value
    End With

    With Range("C6:C11")
        .Formula = "=F6-I6"
        .Value = .Value
    End With
End Sub
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Paylaştığını görselde A sütununda bir hücrede toplama işlemi var. Sanırım hatalı olmuş.

Excel hücrelerine makro ile formül yazmak için aşağıdaki kod yapısını kullanabilirsiniz.

Kod içindeki .Value = .Value satırı formülü değere çevirmektedir. Dilerseniz o satırı silebilirsiniz. Hücre aralıklarını asıl dosyanıza göre revize edersiniz.

C++:
Option Explicit

Sub Cells_Insert_Formula()
    With Range("A6:A11")
        .Formula = "=D6-G6"
        .Value = .Value
    End With

    With Range("B6:B11")
        .Formula = "=E6-H6"
        .Value = .Value
    End With

    With Range("C6:C11")
        .Formula = "=F6-I6"
        .Value = .Value
    End With
End Sub
Öncelikle ilginiz için teşekkür ederim. aynen dikkatsizliğim hatalı olmuş özür dilerim. Peki ama zaten benim derdim. Sütun sayısı arttıkça makroya o sütunuda eklemek zor olacak. Makroyu yazarken bunu belli bir aralık göstererek yapamaz mıyım? Misal : (a:c)=(d:f)-(g:ı) mantıgında yürüyecek bir makro istiyorum.) en azından sütun sayım arttıkça. sizdeki makroyu tekrar tekrar yazmak yerine aralığı değiştiririm daha kolay olur. ben bu makroyu aslında ( C sütunu ile DN sütünları arasında kullanacağım. öyle oluncada yaz yaz bitmiyor formül. (asıl hücre aralığı aşağıdaki şekilde)
s3.Range("C" & i) = s3.Range("B" & i) - s3.Range("D" & i)
s3.Range("AS" & i) = s3.Range("C" & i) - s3.Range("CE" & i)
s3.Range("AT" & i) = s3.Range("AS" & i) - s3.Range("CF" & i)
s3.Range("AU" & i) = s3.Range("AT" & i) - s3.Range("CG" & i)
s3.Range("AV" & i) = s3.Range("AU" & i) - s3.Range("CH" & i)
s3.Range("AW" & i) = s3.Range("AV" & i) - s3.Range("CI" & i)
s3.Range("AX" & i) = s3.Range("AW" & i) - s3.Range("CJ" & i)
s3.Range("AY" & i) = s3.Range("AX" & i) - s3.Range("CK" & i)
s3.Range("AZ" & i) = s3.Range("AY" & i) - s3.Range("CL" & i)
s3.Range("BA" & i) = s3.Range("AZ" & i) - s3.Range("CM" & i)
s3.Range("BB" & i) = s3.Range("BA" & i) - s3.Range("CN" & i)
s3.Range("BC" & i) = s3.Range("BB" & i) - s3.Range("CO" & i)
s3.Range("BD" & i) = s3.Range("BC" & i) - s3.Range("CP" & i)
s3.Range("BE" & i) = s3.Range("BD" & i) - s3.Range("CQ" & i)
s3.Range("BF" & i) = s3.Range("BE" & i) - s3.Range("CR" & i)
s3.Range("BG" & i) = s3.Range("BF" & i) - s3.Range("CS" & i)
s3.Range("BH" & i) = s3.Range("BG" & i) - s3.Range("CT" & i)
s3.Range("BI" & i) = s3.Range("BH" & i) - s3.Range("CU" & i)
s3.Range("BJ" & i) = s3.Range("BI" & i) - s3.Range("CV" & i)
s3.Range("BK" & i) = s3.Range("BJ" & i) - s3.Range("CW" & i)
s3.Range("BL" & i) = s3.Range("BK" & i) - s3.Range("CX" & i)
s3.Range("BM" & i) = s3.Range("BL" & i) - s3.Range("CY" & i)
s3.Range("BN" & i) = s3.Range("BM" & i) - s3.Range("CZ" & i)
s3.Range("BO" & i) = s3.Range("BN" & i) - s3.Range("DA" & i)
s3.Range("BP" & i) = s3.Range("BO" & i) - s3.Range("DB" & i)
s3.Range("BQ" & i) = s3.Range("BP" & i) - s3.Range("DC" & i)
s3.Range("BR" & i) = s3.Range("BQ" & i) - s3.Range("DD" & i)
s3.Range("BS" & i) = s3.Range("BR" & i) - s3.Range("DE" & i)
s3.Range("BT" & i) = s3.Range("BS" & i) - s3.Range("DF" & i)
s3.Range("BU" & i) = s3.Range("BT" & i) - s3.Range("DG" & i)
s3.Range("BV" & i) = s3.Range("BU" & i) - s3.Range("DH" & i)
s3.Range("BW" & i) = s3.Range("BV" & i) - s3.Range("DI" & i)
s3.Range("BX" & i) = s3.Range("BW" & i) - s3.Range("DJ" & i)
s3.Range("BY" & i) = s3.Range("BX" & i) - s3.Range("DK" & i)
s3.Range("BZ" & i) = s3.Range("BY" & i) - s3.Range("DL" & i)
s3.Range("CA" & i) = s3.Range("BZ" & i) - s3.Range("DM" & i)
s3.Range("CB" & i) = s3.Range("CA" & i) - s3.Range("DN" & i)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Sizin belirttiğiniz şekilde olmasa bile elbette yapılabilir.

Döngü ile olabilir. Fakat bunun için dosyanızdaki yapıyı görmek gerekir. Örnek dosya paylaşmanız daha uygun olacaktır.
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Sizin belirttiğiniz şekilde olmasa bile elbette yapılabilir.

Döngü ile olabilir. Fakat bunun için dosyanızdaki yapıyı görmek gerekir. Örnek dosya paylaşmanız daha uygun olacaktır.
Dosya boyutum yüksek. belirttiğim sayfayı atmam için verileri vs silmem gerekecek. ilk attığınız makroyu döngü ile kursanız işimi görür diye düşünüyorum. olmazsa dosyayı hazırlayıp o zaman atayım size.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,246
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kurgu yapacağınız sayfanızın yapısal olarak benzerini sanal veriler içeren bir örneğini paylaşabilirsiniz. Asıl dosyanızı paylaşmanıza gerek yok.
 
Katılım
5 Nisan 2023
Mesajlar
8
Excel Vers. ve Dili
excel office 15
Kurgu yapacağınız sayfanızın yapısal olarak benzerini sanal veriler içeren bir örneğini paylaşabilirsiniz. Asıl dosyanızı paylaşmanıza gerek yok.
Tamamdır Korhan bey paylaşımı yapacağım. hazırlayınca size bilgi vereceğim. İlgilendiğiniz için teşekkür ederim.
 
Üst