Makro ile hücreye formülü excel biçimiyle yazmak

hmtstc

Altın Üye
Katılım
20 Şubat 2014
Mesajlar
314
Excel Vers. ve Dili
Excel 2016 - Türkçe
Altın Üyelik Bitiş Tarihi
10-04-2025
Merhaba arkadaşlar,

Benim bu konuda internette de araştırdığım ama bulamadığım cevaplar var.
Örneğin excelde şu formülü yazıyorum.

=eğer($b2=g2;g2;"")
Ama bunu aynı biçimiyle makroya koşullu biçimde bağlayamadım.

Koşullar şunlar,

b sütunu numarası belli
2 sayısını t değişkenine atadım ( 2 ile son satır arasında işleyecek)
g sütunu değişken ve y değişkenine atadım ( g ile z arasında işleyecek)
2 sayısı yine t değişkenine bağlı.

worksheetfunction.if formülü ile yapmaya çalıştım ama olmadı.
.formula ile yaptım ama başaramadım.

Örnekleri aşağıda paylaşıyorum.

Sheets("TABLO").Cells(t, y + 2) = WorksheetFunction.IF(Cells(t, 2) = Cells(t, y + 1), Cells(t, 2), "")
Sheets("TABLO").Cells(t, y + 2) = "=IF(Cells(t, 2) = Cells(t, y + 1), Cells(t, 2), """")

Yardımlarınız için şimdiden teşekkür ederim.
Çözümünüzü mantığı ile anlatırsanız herkese faydalı olur diye düşünüyorum.
Tekrar teşekkür ederim.
 

vardar07

Destek Ekibi
Destek Ekibi
Katılım
19 Mart 2008
Mesajlar
2,154
Excel Vers. ve Dili
Office 2007 Enterprise
Türkçe
Kod bloğunuzu ekleyin. "t" ve "y" nin değerleri nedir? Bilmeden cevap vermek çok zor. yada aşağıdaki gibi deneyebilirsiniz.

Kod:
If Cells(2, "b") = Cells(2, "g") Then
[H2] = Cells(2, "g")
End If
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Bence de soru çok net değil.

Konu sahibi, makro konusunda yaptıklarını değil de;
sonuçta ulaşmak istediği sonucu, gerçek belgesindekilere benzer verilerle
hazırlayacağı örnek belge ile desteklerse yerinde olur.

Örnek belgede;

-- formülündeki değişkenlerin (satır/sütun numarası gibi),
-- formülün uygulama alanını da değişken hale getirmek istiyorsa,

bu değişkenlerin nereden alınacağını veya nasıl belirleneceğini
açıklarsa daha hızlı ve kesin sonuca ulaşılabileceğini düşünüyorum.

Örnek belge özellikleri ve örnek belgenin yükleme yöntemine ilişkin açıklamalar
cevabımın altındaki İMZA bölümünde var.


Aşağıdaki kod ile H2 ve H3 hücrelerine, konu açılış mesajındaki formülün uygulanması örneklenmiştir.
Uygulanan formül=>> =EĞER($B2=G2;G2;"")

Kolay gelsin.
.
Kod:
[FONT="Arial Narrow"][B]Sub hmtstc_formuller()[/B]
[COLOR="SeaGreen"]'*** örnek 1 ****[/COLOR]
Dim t, y As Integer
t = 2
y = 6
birinci = Cells(t, 2).Address(0, 1)
ikinci = Cells(t, y + 1).Address(0, 0)
formül1 = "=IF(" & birinci & "=" & ikinci & "," & ikinci & ","""")"
Cells(t, y + 2).Formula = formül1

[COLOR="seagreen"]'*** örnek 2 ****[/COLOR]
Dim k, s As String
k = "$B"
s = "G"
formül2 = "=IF(" & k & 2 & "=" & s & "2," & s & "2,"""")"
Cells(t + 1, y + 2).Formula = formül2
[B]End Sub[/B][/FONT]
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Merhabalar,
Konu eski açılmış fakat ben kodumu uyarlayamadım. Elimde aşağıdaki görseldeki gibi bir tablo var. Bu tablonun bu arada özel bir isimlendirmesi var mı bilmiyorum ama her neyse, makro ile aşağıda belirtiğim formülü hücreye yazdırmak istiyorum. Fakat başaramadım. Yardımcı olabilirseniz sevinirim.

237027

=EĞER(SOLDAN([@Kod];5)="İPTAL";"İPTAL EDİLDİ";EĞER(VE([@Tarih]<>"";[@[DATA GELİŞ TARİHİ]]<>"";[@[İŞLENME TARİHİ]]<>"");"TAMAMLANDI";EĞER(VE([@Tarih]<>"";[@[DATA GELİŞ TARİHİ]]<>"";[@[İŞLENME TARİHİ]]="");"İŞLENMEDİ";EĞER(VE([@Tarih]<>"";[@[DATA GELİŞ TARİHİ]]="";[@[İŞLENME TARİHİ]]="");"DATA GELMEDİ";""))))
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Örnek dosyanızı paylaşırsanız yardım almanız kolaylaşacaktır.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Siz bu formülü mü yoksa ürettiği sonucu mu değer olarak hücreye yazdırmak istiyorsunuz?
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
bu formülü yazdırmak istiyorum çünkü daha sonradan tabloya girilecek değer için kendini revize edecek. Ama sizin için bir zorluğu yoksa iki durumu da öğrenmem için yazarsanız sevinirim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim Tablo As ListObject
    
    Set Tablo = Sheets("KAYIT").ListObjects("KAYIT")
    
    With Tablo.DataBodyRange.Columns(18)
        .Formula = "=IF(LEFT([@Kod],5)=""İPTAL"",""İPTAL EDİLDİ""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]<>"""",[@[İŞLENME TARİHİ]]<>""""),""TAMAMLANDI""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]<>"""",[@[İŞLENME TARİHİ]]=""""),""İŞLENMEDİ""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]="""",[@[İŞLENME TARİHİ]]=""""),""DATA GELMEDİ"",""""))))"
        .Value = .Value
    End With
End Sub
 

Furkan TARAKÇI

Altın Üye
Katılım
15 Şubat 2022
Mesajlar
51
Excel Vers. ve Dili
Microsoft® Excel® Microsoft 365 için MSO (Sürüm 2205 Derleme 16.0.15225.20172) 64 bit Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2027
Deneyiniz.

C++:
Option Explicit

Sub Test()
    Dim Tablo As ListObject
 
    Set Tablo = Sheets("KAYIT").ListObjects("KAYIT")
 
    With Tablo.DataBodyRange.Columns(18)
        .Formula = "=IF(LEFT([@Kod],5)=""İPTAL"",""İPTAL EDİLDİ""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]<>"""",[@[İŞLENME TARİHİ]]<>""""),""TAMAMLANDI""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]<>"""",[@[İŞLENME TARİHİ]]=""""),""İŞLENMEDİ""," & _
                   "IF(AND([@Tarih]<>"""",[@[DATA GELİŞ TARİHİ]]="""",[@[İŞLENME TARİHİ]]=""""),""DATA GELMEDİ"",""""))))"
        .Value = .Value
    End With
End Sub
Üstadım eline sağlık, hücreye formül yazdırmayı da ben çift tırnak koymuyormuşum sizin kodu görünce denedim oldu. Ellerinize sağlık
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,267
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şu satırı silmelisiniz.

.Value = .Value
 
Üst