• DİKKAT

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

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

  • Konbuyu başlatan Konbuyu başlatan hmtstc
  • Başlangıç tarihi Başlangıç tarihi
Katılım
20 Şubat 2014
Mesajlar
315
Excel Vers. ve Dili
Excel 2016 - Türkçe
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.
 
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
 
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]
 
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İ";""))))
 
Örnek dosyanızı paylaşırsanız yardım almanız kolaylaşacaktır.
 
Siz bu formülü mü yoksa ürettiği sonucu mu değer olarak hücreye yazdırmak istiyorsunuz?
 
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.
 
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
 
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
 
Şu satırı silmelisiniz.

.Value = .Value
 
Geri
Üst