Bir hücrede formülün görüntülenmesi hem de formülün çalışması mümkün müdür?

Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
Bir X hücresi içeriğine =A1*B1 şeklinde bir formül yazdığımızı, bir Y hücresine de =X yazdığımızı kabul edelim. Ben X hücresinde; formülün normal şekilde çalışmarak çarpma işlemini yapmasını ancak hücrede sonucunun değil formülün görüntülenmesini istiyorum. Bir başka deyişle X hücresine baktığımda =A1*B1 yazdığını göreyim ancak Y hücresi işlemin sonucunu verebilsin istiyorum. Excel'de bunu yapmak mümkün müdür acaba?
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Böyle bir kod işinizi görür.
Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$1" Then
[D1] = "'=A1*B1"
Else
[D1] = "=A1*B1"
End If
End Sub
 
Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
Kusurabakmayın, bu kodu nereye girmem gerekir?
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kodu kopyalayıp, ilgili sayfanın kod bölümüne yapıştırınız.
 
Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
Teşekkür ederim. Verdiğiniz kodu, "Geliştirici" sekmesinde "Kod Görüntüle" düğmesine tıklayıp açılan pencereye yapıştırdım. Ancak D1 hücresinin formül şeklinde görüntülenmesi için D1'e tıklamam gerekiyor, başka bir başka hücreye geçtiğimde ise işlemin sonucunu yazıyor. Hangi hücrede olursam olayım D1 de formülün kendisi yazsın istiyorum, tabi mümkünse.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sayın hatas
İlgili sayfanın kod bölümüne aşağıdaki kodları yapıştırın, herhangi bir hücrede çift tıklayın sayfadaki tüm hücrelerdeki formüller gözükecek, tekrar herhangi bir hücrede çift tıklarsanız formül sonuçları görünecektir.
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ActiveWindow.DisplayFormulas = True Then
ActiveWindow.DisplayFormulas = False
Else
ActiveWindow.DisplayFormulas = True
End If
End Sub
Yine aynı şekilde yapıştıracağınız ve aynı şekilde çalışan aşağıdaki kod ise sadece D1 hücresindeki formül görünür ve tekrar sonuca döner
Kod:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 If Range("D1").NumberFormat = "General" Then
 Range("D1").NumberFormat = "@"
    Range("D1").Formula = Range("D1").Formula
    Else
    Range("D1").NumberFormat = "General"
    Range("D1").Formula = Range("D1").Formula
    End If
End Sub
Not: Bu seçeneklerden hangisi uygunsa onu kullanın ikisi birden çalışmaz.
 
Son düzenleme:

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Bu şekilde deneyiniz.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
[d1] = Worksheebt.Function.Product([a1:b1])
End Sub
 
Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
@Seyit Tiken malesef olmadı. Formül görüntülense bile Bir başka hücreye =D1*5 yazdığımda hata veriyor, formül çalışmıyor.

@alicimri, D1 gibi belirlediğim bazı hücrelerde formül içeriğinin daima görüntülenmesine (herhangi bir yere çift tıklamaya gerek olmadan görüntülenmesine) ve hatta yazıcıdan çıktı alırken de aynı şekilde görünmesine ihtiyaç duyuyorum.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sonucunu görmek istemediğiniz formülü niye yazıyorsunuz. Sonucunu bir şekilde kullanmayacaksanız, İlk önce D1 hücresini Metin formatına çevirin sonra formülü yazın. Bir sonuç üretmeyecek ama hücrede yazdığınız formül görünecektir.
 
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Kusura bakmayın, Seyit Tiken'e verdiğiniz cevabı görmedim. Hem sonuç üretip hem görünen formül yazmak tek hücre için mümkün değil.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Böyle bir şeyi ne yapacağınızı çok merak ettim doğrusu. Özel değilse paylaşır mısınız?
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Hatas,
Ne işe yarayacağını çok anlamadıysam da dosyadaki örnek sanırım sizin istediğiniz gibi.
Kullanıcı Tanımlı Fonksiyonu (KTF) Korhan Ayhan Hocam yazmış. Bu vesileyle kendilerine tekrar teşekkür ederim.
Kolay gelsin
 

Ekli dosyalar

Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
Mesela altta resimde bir sıva-boya metrajı var. Bu sayfanın çıktısını aldığımda okuyacak olan kimselerin, “Düşülecek boşluklar” sütunundaki alanların nasıl hesap edildiğini görmesini istiyorum.


Belki “E sütununda kesme (‘) işareti kullanın, aynı verileri kopyalayıp FARK sütununa tekrar yazın ve “Metni Sütunlara döndür” işlemi uygulayın” diye düşünebilirsiniz. Ancak örnek olarak verdiğim tabloda E sütunundaki verilerde sık sık değişiklik yapmam gerektiğini ve tablonun uzun olduğunu farzedin. Bu tabloyu örnek olarak verdim. Daha farklı bir tablo kullanıyorum ve E sütunundaki rakamlarda sık sık değişiklik-düzeltme yapmam gerekebiliyor. E sütununda değişiklik yapınca F sütununda da elle düzeltme yapmam gerekiyor ve bazen F’de düzeltme yapmayı unutabiliyorum.

@Tevfik_Kursun dosyayı indiremedim, altın üyelik gerektirdiği yazıyor. Herkese çok teşekkür ederim, ilgilendiğiniz için. Farklı bir kod kullanarak bu işlemi gerçekleştirmek mümkün ise öğrenmek isterim. Başka bir çözüm yoksa da sağlık olsun :) çok büyük bir sorun teşkil etmiyor.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dosyanızda yeni bir module açın aşağıdaki kodları kopyalayın.

Kod:
Function KFORMÜL(Veri As Range)
    On Error Resume Next
    KFORMÜL = Veri.FormulaLocal
End Function
@Tevfik_Kursun un ekte gönderdiği dosyada bulunan koddur.

Verdiğiniz örneğe göre kullanımı;

E2 hücresine aşağıdaki formülü kopyalayın

Kod:
=KFORMÜL(F2)
 
Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
@Tevfik_Kursun , @dalgalikur : Bu formülle ben bir hücrede (2,3*1,4)+(2,1*1,4)+(0,9*2,1) şeklinde bir görüntü elde etmek isterken, bu formülü uygulayınca ister istemez =D2-((2,3*1,4)+(2,1*1,4)+0,9*2,1)) şeklinde bir sonuç ortaya çıkıyor. Yani X değil Y-X şeklinde sonuç veriyor.

Bu kod, bir hücredeki formülü başka bir hücrede görüntülemeye yaradı. Aradığım şey tam olarak bu değil. Neyse böyle idare ederim artık. Tekrar teşekkür ederim.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaş,
İstediğiniz sanıyorum bu dosyada var.

https://drive.google.com/file/d/0B4K-3W_BCuDpSW8wZmxFRzFkRUE/view?usp=sharing

Bu bağlantıdan indirebilirsiniz. Tablonuzu tamamladıktan sonra F sütununu gizlerseniz baskıda görünmez. (Görünmesini isterseniz o sütunun başlığına da kesintiler toplamı diyebilirsiniz.)
Sıkıntı olursa yine yazabilirsiniz, ancak yarın akşam cevap verebilirim.
Sitemizde kimsenin işini yarım bıraktığımızı hatırlamıyorum.
İyi çalışmalar
 

Ekli dosyalar

Katılım
18 Eylül 2007
Mesajlar
20
Excel Vers. ve Dili
Excel 2016
Çok teşekkürler. Bu verdiğiniz dosya yukarıda belirttiğim gibi bir hücredeki formülün başka bir hücrede görüntülemesine yaradı, bununla birlikte amacıma ulaşabilmek için sütun gizleme işlevinden faydalanabileceğimi hatırlattı.
Sonuç olarak dolaylı yoldan da olsa amacıma ulaştım, bu özelliği artık kullanabilirim. Bu güne kadar Excel’de makro-kod kullanımı konusunda benim gibi bilgisi olmayan kullanıcılar için konuyu aşağıda detaylı olarak özetleyeceğim. Bununla birlikte hala merak ettiğim bir şey var. Bu yöntemle bir başka hücredeki formülü görüntüleyebiliyoruz. Acaba başka bir yöntemle bir hücredeki formülü aynı hücrede hem görüntülemek hem de çalışmasını sağlamak mümkün müdür? Biraz daha araştırdım ve sitede şöyle bir bilgi buldum. Konuların karışmaması için bu yöntem ile ilgili sorumu o sayfaya eklemeyi denedim ancak sayfa kilitlenmiş.

----------------------------------------------

Makro bilmeyenler için Konunun Özeti:
  • Bir formülü, formül olmaktan çıkararak sadece görüntülemek istiyorsak formülün başına kesme işareti ( ' ) ekleyerek hücreyi metin haline dönüştürebiliriz. Ayrıca bu işlem, tırnak işareti kullanılmadan ilgili hücreler seçildikten sonra "Hücreleri Biçimlendir > Sayı > Metin" yolu izlenerek hücrelerin metin olarak tanımlanmasıyla da gerçekleştirilebilir.
  • Formüller > Formülleri Göster yolu izlenerek bir çalışma sayfasındaki tüm formüller, (formül işlevini kaybetmeden) görüntülenebilir. Ancak bu yöntemle dosyadaki formüllerin tamamı görüntülenir, bir kısmına uygulamak mümkün değildir.
  • Tüm hücrelerin değil sadece bir hücredeki formülün görüntülenebilmesi için ise Makro kullanmak gereklidir. Ancak aşağıda anlattığımız bu yöntemle bir hücredeki formül aynı hücrede değil bir başka hücrede görüntülenebilir. Aynı verinin iki hücrede olması hali istenmeyen bir durum olacağından bu durumu sütun gizleme yapıp kaynak veriyi görünmez hale getirerek atlatabilirsin.

1. Önce Excel şerit arayüzünde “Geliştirici” sekmesini açmamız gerekiyor. Bunun için sol üst köşedeki Office düğmesi > Excel Seçenekler > Popüler > Şeritte Geliştirici sekmesini göster yolunu izleyin.

2. Ardından Geliştirici sekmesine yer alan Kod Görüntüle düğmesine tıklayın. Açılan pencerede Insert > Modüle yolunu izleyin ve gelen pencereye alttaki kodu kopyalayıp kapatın (kapattığında otomatik olarak kaydedilir).

Kod:
Function KFORMÜL(Veri As Range)
    On Error Resume Next
    KFORMÜL = Veri.FormulaLocal
End Function
3. Artık örneğin B1 hücresindeki formülü bir başka hücrede görüntülemek için o hücreye alttaki formülü yazmamız yeterlidir.

=KFORMÜL(B1)

Eklediğimiz modülü daha sonra görüntülemek istersek yine "Kod Görüntüle "düğmesine bastıktan sonra açılan pencerenin sol kenarındaki gezgin çubuğundan ulaşabiliriz.

4. Çalıştığımız Excel dosyasını kaydedip çıkmak istediğimizde; “Makroların kaydedilebilmesi için dosyayı makro özelliği etkinleştirilmiş bir dosya türünde kaydetmelisiniz” şeklinde bir uyarı gelecektir. Bu nedenle dosyayı Farklı Kaydet menüsünden “Makro içerebilen Excel çalışma kitabı (xlsm)” biçiminde kaydetmeliyiz.

5. Makroları Etkinleştirme: Dosyayı kapatıp tekrar açtığımızda işlevin çalışabilmesi için Makroların etkinleştirilmiş olması gereklidir. (Makroyu etkinleştirmezsen bile ilk anda sanki makro çalışıyormuş gibi görünür ancak, KFORMÜL işlevinin bulunduğu bir hücreye çift tıklayıp Enter yapınca hücre hata verecektir.) Makroları etkinleştirmek için;

I. YOL: Makro içeren bir dosyayı ilk açtığımızda üstte otomatik olarak ortaya çıkan Makroların engellendiğini yazan bildirim çubuğunu kullanarak makrolar etkinleştirilebilir.
II. YOL: "Geliştirici > Makro Güvenliği" yolu izlenerek makrolar etkinleştirilebilir, ancak bu yol kullanıldığı zaman dosyanın bir kez kapatılıp açılması gereklidir.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Katılım
12 Aralık 2015
Mesajlar
1,207
Excel Vers. ve Dili
Türkçe Ofis 2007
Sayın Korhan Ayhan
Ben de böyle bir çözüm için uğraşıp duruyordum. KTF çok güzel olmuş. Bir sorun var. Hücre referanslarında ve sabit sayısal işlemlerde doğru çalışıyor. Fonksiyon kullanınca Türkçe nedeni ile hataya düşüyor. Örneğin "=Topla(A1:A5)" hataya düşüyor ama "=Sum(A1:A5)" doğru sonuç veriyor.
 
Üst