• DİKKAT

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

FormulaArray Hk.

Katılım
16 Nisan 2010
Mesajlar
170
Excel Vers. ve Dili
Microsoft Office 2010 türkçe
Merhaba;
Aşağıdaki formülü hücreye girerken FormulaArray özelliğini nasıl kullanabilirim? Ctrl+Shift+Enter yapmadığı için hücrede hesaplama yapmıyor.


ActiveCell.Offset(1, 0).Range("a1").Select

ActiveCell.FormulaR1C1 = _
"=SUM(IF(.......
 
Şöyle yapabilirsiniz.

DİZİ formül olan hücrenizi seçin.
MAKRO KAYDET tuşuna tıklayın.
F2 tuşuna basarak hücre içine girin. Sonrasında CTRL+SHIFT+ENTER tuşlarına basarak hücreyi terk edin.
Son olarak makro kaydını durdurun.

ALT+F11 tuşlarına basarak oluşan kodları görebilirsiniz. Sonra dilediğiniz gibi düzenlersiniz.
 
Korhan Bey merhaba;
Makro kaydet ile yaptığımda Selection.FormulaArray = (Formül)" şeklinde yazmam gerektiği çıkıyor. Problem hücreye "ActiveCell.FormulaR1C1 = (Formül)" ile kod yazdığımda formülü direk yapıştırıyor dizi formülü olduğundan formül hesaplamıyor. Dizi formüllerde "Selection.FormulaArray = (Formül)" kullanmak gerekir bu şekilde yazdığımda da işlem yapıldığında hücre boş geliyor. Dizi formül olmayan formüller için işe yarıyor aşağıdaki örnek gibi
Örnek :
ActiveCell.FormulaR1C1 = _
"=SUM('" & adres & ActiveCell.Offset(-8, 0) & dosya & "]G. Analiz'!R" & p1 & "C" & mak1 & ":R" & p1 & "C" & mak1 & ")"

Bir türlü çözemedim problemi.
 
Örnek verdiğiniz satırın altına aşağıdaki kodu ekleyip bir deneyiniz. Ben denemedim. Eğer çalışmazsa kendi kullandığınız formülü R1C1 stilinden normal stile dönüştürüp deneyiniz.

ActiveCell.FormulaArray = ActiveCell.FormulaR1C1
 
Malesef çalışmadı Korhan Bey farklı bir satırda selection.FormulArray olarak işlemler bittikten sonra gireceğim. Teşekkürler ilginiz için. İyi çalışmalar dilerim.
Saygılarımla.
 
Bir de aşağıdaki satırı ekleyip deneyiniz.

ActiveCell.FormulaArray = Application.ConvertFormula(ActiveCell.Formula, xlA1, xlR1C1)
 
Korhan Bey öncesine veya sonrasına yazdığımda "#DEĞER!" yazıyor sadece. "ActiveCell.FormulaR1C1 = Dizi Formül " yerine "ActiveCell.FormulaArray = Application.ConvertFormula(ActiveCell.Formula, xlA1, xlR1C1 = Dizi Formül) " yazdığımda "YANLIŞ" yazıyor hücrede. Formül otomatik mauel (Elle) denemeleri de yaptım aynı sonuçları aldım.
 
Bu satırın;

ActiveCell.FormulaR1C1 = _
"=SUM('" & adres & ActiveCell.Offset(-8, 0) & dosya & "]G. Analiz'!R" & p1 & "C" & mak1 & ":R" & p1 & "C" & mak1 & ")"

Altına son önerimi ekleyip deneyiniz.
 
Hücreye "#DEĞER!" yazdı Korhan Bey . Ben ümidi kestim başaramayacağım. Değerli vaktinizi ayırdığınız için çok teşekkür ederim.
Saygılarımla
 
Lütfen örnek dosyanızı paylaşınız.
 
Farklı bir siteye yükleyebilir misiniz? Dosyanıza erişemedim.
 
Formülün uzunluğu veya paylaşım ağında olması ile alakalı sanırım. Dosyanın orjinalinde şirket bilgileri felan var ve paylaşmamız yasak. Ondan dolayı Örnek bir dosya paylaştım.
 
Paylaşım ağına erişimim olmadığı deneme şansım elbette yok. Ama makro kaydet ile yaptığımda aşağıdaki sonuç çıkıyor. Belki bu hali çalışır.

C++:
ActiveCell.FormulaArray = "=SUM(IF('P:\TPM Koordinasyon Şefliği\EGITIM VE GELISIM\Ext_Rework\[RW Ürün Kullanım v1.xlsm]VeriSayfasi'!R2C1:R20000C1=R19C1,IF('P:\TPM Koordinasyon Şefliği\EGITIM VE GELISIM\Ext_Rework\[RW Ürün Kullanım v1.xlsm]VeriSayfasi'!R2C2:R20000C2=R[-20]C,'P:\TPM Koordinasyon Şefliği\EGITIM VE GELISIM\Ext_Rework\[RW Ürün Kullanım v1.xlsm]VeriSayfasi'!R2C3:R20000C3)))"
 
Geri
Üst