• DİKKAT

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

hücre değerine göre yazı büyüklüğü

Katılım
25 Ocak 2006
Mesajlar
763
Excel Vers. ve Dili
2019 tr
hücre değerine göre başka bir hücrenin yazı fontunu nasıl değişiriz. değişikliğe tepki verecek şekilde. yani run sub düğmesine basmaya gerek kalmadan. forumda örnek var ama run sub a basmadan çalışmıyor.
 
Aşağıdaki yöntemde run sub düğmesine basmaya gerek kalmıyor.
Program durumu otomatik algılayıp gerekli tepkiyi veriyor.
A1 hücresi değiştiğinde, A1 hücresindeki değere göre B1 hücresinin Yazı Fontu otomatik değişiyor.
Selamlar...

Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(1, 1) = 1 Then

Cells(1, 2).Font.Name = "Arial Black"

ElseIf Cells(1, 1) = 2 Then

Cells(1, 2).Font.Name = "Calibri"

ElseIf Cells(1, 1) = 3 Then

Cells(1, 2).Font.Name = "Times New Roman"

ElseIf Cells(1, 1) = 4 Then

Cells(1, 2).Font.Name = "Comic Sans MS"

ElseIf Cells(1, 1) = 5 Then

Cells(1, 2).Font.Name = "Cambria"

End If

End Sub
 
Son düzenleme:
"Change" olayı sayfada elle değişiklik ister. Eğer değerler formüllere göre değişiyorsa doğru çalışmaz.

"Calculate" olayı daha mantıklı görünüyor.
 
Elinize sağlık. korhan bey, formüllü sonuca göre de çalışıyor, sıkıntı görmedim ama, benim ihtiyacım olan fontun değere göre büyüyüp küçülmesi. buna çevirebilir miyiz. bir de hücreleri a1 b2 gibi yazma şansımız var mı :) koordinatta kafam karışıyor.
 
Bendeki Excel'de "Calculate" olayı değerler formüllere göre değişiyorsa çalışıyor. Fakat bendeki Excel'de "Calculate" olayı sayfada elle değişikliklik olunca algılamıyor, çalışmıyor. Bendeki Excel'de sıkıntı mı var acaba.
 
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(1, 1) >= 10 Then
Cells(1, 2).Font.Name = "Arial Black"
Cells(1, 2).Font.Size = 10


ElseIf Cells(1, 1) >= 20 Then
Cells(1, 2).Font.Name = "Calibri"
Cells(1, 2).Font.Size = 20


ElseIf Cells(1, 1) >= 30 Then
Cells(1, 2).Font.Name = "Times New Roman"
Cells(1, 2).Font.Size = 30



ElseIf Cells(1, 1) >= 40 Then
Cells(1, 2).Font.Name = "Comic Sans MS"
Cells(1, 2).Font.Size = 40



ElseIf Cells(1, 1) >= 50 Then
Cells(1, 2).Font.Name = "Cambria"
Cells(1, 2).Font.Size = 50

End If

End Sub

böyle yapınca çalışmıyor :(
 

Ekli dosyalar

böyle yapınca çalışmıyor :(

Değerli arkadaşım.

#6 nolu mesajdaki if then else kod bloğunda siz 1. koşulda diğer koşullardaki tüm şartları sağladığınız için diğer olasılıklar hiç çalışmıyor.
Yani hep ya ilk koşulunuz çalışacak yada hiç çalışmayacak kod bloğu yazılmış.
Aşağıdaki kod bloğunu deneyiniz.

Selamlar...

Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(1, 1) >= 10 And Cells(1, 1) < 20 Then
Cells(1, 2).Font.Name = "Arial Black"
Cells(1, 2).Font.Size = 10


ElseIf Cells(1, 1) >= 20 And Cells(1, 1) < 30 Then
Cells(1, 2).Font.Name = "Calibri"
Cells(1, 2).Font.Size = 20


ElseIf Cells(1, 1) >= 30 And Cells(1, 1) < 40 Then
Cells(1, 2).Font.Name = "Times New Roman"
Cells(1, 2).Font.Size = 30



ElseIf Cells(1, 1) >= 40 And Cells(1, 1) < 50 Then
Cells(1, 2).Font.Name = "Comic Sans MS"
Cells(1, 2).Font.Size = 40



ElseIf Cells(1, 1) >= 50 Then
Cells(1, 2).Font.Name = "Cambria"
Cells(1, 2).Font.Size = 50

End If

End Sub
 
Değerli arkadaşım.
#6 nolu mesajdaki if then else kod bloğunda siz 1. koşulda diğer koşullardaki tüm şartları sağladığınız için diğer olasılıklar hiç çalışmıyor.
Yani hep ya ilk koşulunuz çalışacak yada hiç çalışmayacak kod bloğu yazılmış.
Aşağıdaki kod bloğunu deneyiniz.
Selamlar...

Private Sub Worksheet_Change(ByVal Target As Range)

If Cells(1, 1) >= 10 And Cells(1, 1) < 20 Then
Cells(1, 2).Font.Name = "Arial Black"
Cells(1, 2).Font.Size = 10


ElseIf Cells(1, 1) >= 20 And Cells(1, 1) < 30 Then
Cells(1, 2).Font.Name = "Calibri"
Cells(1, 2).Font.Size = 20


ElseIf Cells(1, 1) >= 30 And Cells(1, 1) < 40 Then
Cells(1, 2).Font.Name = "Times New Roman"
Cells(1, 2).Font.Size = 30



ElseIf Cells(1, 1) >= 40 And Cells(1, 1) < 50 Then
Cells(1, 2).Font.Name = "Comic Sans MS"
Cells(1, 2).Font.Size = 40



ElseIf Cells(1, 1) >= 50 Then
Cells(1, 2).Font.Name = "Cambria"
Cells(1, 2).Font.Size = 50

End If

End Sub

:) Yapmışımdır. çok güzel oldu. gerisi bende. teşekkürler.
 
son bir soru (umarım). kullandığım sayfanın kod kısmında başka bir Private Sub Worksheet_Change(ByVal Target As Range) olduğu için bunnu eklediğimde hata veriyor sanırım. çözmenin yolu var mı, yoksa modüle mi yazmam lazım. o zaman da sanırım kodun değişmesi lazım. aslına balarsanız 2 sekmede kullanacağım bunu. biri sunu diğeri akssunu ve bu sayfalarda e20 deki değere göre B15 yazı fontu değişecek. hazıra konmak gibi oldu ama konmayınca da ilk satırda bu excel çalışmıyor diyorum :)

düzenleme:

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

Set s = Sheets("sunu")

If s.[b19] >= 0 And s.[b19] < 800 Then
s.[b15].Font.Name = "Palatino Linotype"
s.[b15].Font.Size = 24

ElseIf s.[b19] >= 800 Then
s.[b15].Font.Name = "Cambria"
s.[b15].Font.Size = 10

End If

End Sub

modüle bu şekilde yazınca olmuyor mesela... yine neyi yanlış yapıyorum ki?
 
Son düzenleme:
Modül-Sayfa Olayları-Kitap Olayları ayrı işlemlerdir.

Siz sayfa olayını modüle yazarsanız çalışmaz.
Aynı şekilde Kitap olayını modüle yazarsanız çalışmaz.

Ama modül kodlarınızı sayfa ya da kitap kod bölümüne yazıp çalıştırabilirsiniz.
 
..... kullandığım sayfanın kod kısmında başka bir Private Sub Worksheet_Change(ByVal Target As Range) olduğu için bunnu eklediğimde hata veriyor sanırım. çözmenin yolu var mı, ....... :)

Kullandığınız sayfanın kod kısmında başka bir Private Sub Worksheet_Change(ByVal Target As Range) olduğunu yazmışsınız.
Sorun değil.
İkinci bir Private Sub Worksheet_Change() açmaya gerek yok.
Ekleyeceğiniz kodları halihazırdaki Private Sub Worksheet_Change() içine en altına yapıştırabilirsiniz.
Selamlar...
 
teşekkürler korhan bey. aldım bu bilgiyi. teşekkürler.
kulomer46 süper oldu. teşekkürler.
 
Ben kullanım şeklinizi bilmiyorum. Başka bir başlıkta benzer bir soru sormuştunuz. Orayla bağlantısı olduğunu düşünerek bu yorumu yapmıştım. Orada başka kaynaktan edindiğiniz kodu (Calculate) paylaşmıştınız. Eğer değerler el ile değiştiriliyorsa zaten mesele yok. Ama eğer fontun değişmesini beklediğiniz hücreler formülle güncelleniyorsa önerilen kodun sonuç vermemesi gerekiyor.

Normal bir excel dosyasında formüllü hücrede denerseniz sonuç almamanız gerekir.

Elinize sağlık. korhan bey, formüllü sonuca göre de çalışıyor, sıkıntı görmedim ama, benim ihtiyacım olan fontun değere göre büyüyüp küçülmesi. buna çevirebilir miyiz. bir de hücreleri a1 b2 gibi yazma şansımız var mı :) koordinatta kafam karışıyor.

Ekteki basit dosyayı deneyiniz.

Sayfa1 A1 hücresinden diğer sayfadan formülle veri alınıyor.

Sayfa2 A1 hücresinde değişiklik yapıp Sayfa1 B1 hücresinde sonucu gözlemleyiniz. Ne demek istediğimi anlayacaksınız.
 

Ekli dosyalar

Ben kullanım şeklinizi bilmiyorum. Başka bir başlıkta benzer bir soru sormuştunuz. Orayla bağlantısı olduğunu düşünerek bu yorumu yapmıştım. Orada başka kaynaktan edindiğiniz kodu (Calculate) paylaşmıştınız. Eğer değerler el ile değiştiriliyorsa zaten mesele yok. Ama eğer fontun değişmesini beklediğiniz hücreler formülle güncelleniyorsa önerilen kodun sonuç vermemesi gerekiyor.

Normal bir excel dosyasında formüllü hücrede denerseniz sonuç almamanız gerekir.



Ekteki basit dosyayı deneyiniz.

Sayfa1 A1 hücresinden diğer sayfadan formülle veri alınıyor.

Sayfa2 A1 hücresinde değişiklik yapıp Sayfa1 B1 hücresinde sonucu gözlemleyiniz. Ne demek istediğimi anlayacaksınız.

gözlemledim, haklısınız... teşekkürler...
 
Geri
Üst