• DİKKAT

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

Formülleri makroya taşımak

  • Konbuyu başlatan Konbuyu başlatan gezin23
  • Başlangıç tarihi Başlangıç tarihi
Katılım
13 Şubat 2015
Mesajlar
57
Excel Vers. ve Dili
2010
İyi akşamlar herkese. Eklediğim dosyada AZ10 İle CU82 arasındaki hücrelerde formüller mevcut. Benim yapmak istdiğim bu formülleri bir buton yardımıyla makroya taşımak. Yani hücrelerdeki formül makro ile yapılsın istiyorum. Hücrede formülün olmasını istemiyorum. Yardımcı olursanız çok sevinirim.
 

Ekli dosyalar

Merhaba.
Belgeniz açıkken MAKRO KAYDET düğmesine tıklayın ve makroya aktarmak istediğiniz
formül içeren hücreleri tek tek seçerek F2 -> ENTER işlemi yapın (kopyala yapıştır şeklinde başka hücrelere de
uygulanabilir formülleriniz için ilk hücreye F2 -> ENTER işleminden sonra kopyala->yapıştır, hücrenin sağ alt
köşesinden tutup sürükleyerek çoğaltabileceğiniz formüller için bu şekilde köşeden tutup sürükleme işlemini de yapabilirsiniz)

Gerekli hücrelerin tümündeki işlemi tamamladığınızda MAKRO KAYDINI DURDURUN.

Sonra da aşağıdaki gibi biraz düzeltme yapıp bir miktarda ilave ile daha şık duracaktır.
Örneğin ben belgenizdeki AZ10 hücresi için yaptım ve ilk hali ve düzeltilmiş hali aşağıda.

Makro kaydet ile oluşan:
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Sub Makro1()
    Range("[COLOR="Red"]AZ10:AZ13[/COLOR]").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-48]=""BRANŞ"",SUM(RC[-37]:RC[-31]),0)"
    Range("AZ14:BG14").Select
End Sub[/SIZE][/FONT]
Düzenlenmiş hali:
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Sub Makro2()
[COLOR="RoyalBlue"]'AÇIKLAMA: BELGELERİNİZDE HÜCRE BİRLEŞTİRMELERİNDEN, MÜMKÜN OLDUĞUNCA SAKINMANIZI ÖNERİRİM.
'BİRLEŞTİRİLMİŞ HÜCRELERDEKİ FORMÜLLER SOL ÜSTÜNDEKİ HÜCREYE UYGULANMIŞ DEMEKTİR.
'BU NEDENLE [COLOR="Red"]AZ10:AZ13 [COLOR="RoyalBlue"]ADRESİNİ[/COLOR] AZ10 OLARAK DĞİŞTİRDİM[/COLOR].
'SON SATIR FORMÜL SONUCUNUN HÜCREYE DEĞER OLARAK YAZILMASINI SAĞLAR.
[/COLOR]    
[COLOR="RoyalBlue"]Formül satırı aşağıdaki iki şekilden birisi gibi de olabilir.
Seçenek 1)[/COLOR]     Range("[COLOR="red"]AZ10[/COLOR]").FormulaR1C1 = "=IF(RC[-48]=""BRANŞ"",SUM(RC[-37]:RC[-31]),0)"
[COLOR="royalblue"]Seçenek 2)[/COLOR]     Range("[COLOR="red"]AZ10[/COLOR]").Formula = "=IF(D10=""BRANŞ"",SUM(O10:U10),0)"

    Range("[COLOR="red"]AZ10[/COLOR]") = Range("[COLOR="red"]AZ10[/COLOR]")
End Sub[/SIZE][/FONT]

Başka bir duruma örnek:
Kod:
[FONT="Trebuchet MS"][SIZE="2"]Sub Makro3()
[COLOR="royalblue"]'ÖRNEĞİN C2'DEN C100 hücresine kadar =A2+B2 gibi tek tip formülünüz varsa
'(formülün karmaşıklığı değil sağ alt köşesinden tutulup aşağı/yukarı veya sağa/sola doğru sürükleyerek
'kopyalama işlemi yapılabilir yapıda oluşturulmuş olması önemli)
'aşağıdaki gibi birkaç satırda tüm hücrelere işlem yapılabilir.
' .Formula satırı formülü ilgili alana uygular
' .Value = .Value satırı ise formül sonuçlarını DEĞER olarak hücrelere yazar.
    
[/COLOR]    With Range("C2:C100")
        .Formula = "=A2+B2"
        .Value = .Value
    End With
End Sub[/SIZE][/FONT]
 
Ömer Baran Bey bi sorum olacak. Bu verdiğiniz çözümü uyguladığımda makro bu hücrelere formül atıyo. Hücrelere formülü atmadan sadece sonucu aktarabilirmiyiz.
 
En genel haliyle, gayet basit bir yöntem.
Teşekkürler.
 
Geri
Üst