İsteğe Uyarlanmış Hücre Biçimleri hakkında

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
50'den küçük rakamların sağına "Yıllık" diğerlerinin yanına "Saatlik"
[<50]# "Yıllık";#.### "Saatlik" ile ekleyebiliyorum.

Ancak şunu yapamadım;

1 ila 10 arası yıllık
50 ila 15.000 arası saatlik
15.000 ila 500.000 arası paketlik
[] işaretleri arasına nasıl yazmam gerekiyor?

Özel Hücre Biçimleri konusunu inceledim.Bir kaç soru daha sorabilir miyim?
[] işaretli başka hangi amaçlar için kullanabiliriz?
[] işaretlerine Fonsiyonlarda olduğu gibi şart koyabilir miyiz?
Örneğin
$a$1=5
Bugün()
Eğer()
gibi.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kod:
[<50]#.##0,00 "Yıllık";#.##0,00 "Saatlik"
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Sayın Seyit Tiken,
Önce teşşekür ederim. Ancak, tam anlatamadım sanırım. Saatlik ve Yıllıkları yapabiliyorum.
Daha detaylı anlatayım;
[<50]#" Yıllık";[<15001]#.###" Saatlik" yapabiliyorum.
[<50]#" Yıllık";[<15001]#.###" Saatlik";[<500001]#.###" Paket" yapınca olmuyor. hata veriyor.
Anladığım kadarıyla [] 2 taneden fazla kullanılamıyor.
Benim esas apmak istediğim daha fazla şöyle ki;
[<50]#" Yıllık";[<15001]#.###" Saatlik";[<500001]#.###" Paket";[<1000001]#.###" İnsört"

yani bu sayede
0 ila 50 arası yıllık
51 ila 15000 arası saatlik
15001 ila 500000 arası paket
500001 ila 1000000 arası insört olacak.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Hücre Biçimlendirmede, yanılmıyorsam, sınır 2 veya 3'tür, onun için makroyla sorununuzu haledebilirsiniz.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Koşullu biçimlendirmede sınır 3 olduğunu biliyorum. Ancak İsteğe bağlı özel hücre biçimlendirmede nasıldır bilmiyorum.
Koşullu biçimlendirmede 3 olsa bile fonksiyon kullanılabiliyor ve hatta aralık kullanılabiliyor. 3 den fazla şart koşulabiliniyor.
isteğe bağlı hücre biçimlendirmede yok mudur?
örneğin aşağıdaki kodda 3 koşul var ve çalışıyor.
[yeşil]genel;[yeşil]genel;[siyah]genel

Kolay gelsin.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kodu Kendinize Uyarlayınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target < 50 Then Target = Target & " Yıllık"
If Target > 50 Then Target = Target & " Saatlik"
End Sub
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Kodu Kendinize Uyarlayınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target < 50 Then Target = Target & " Yıllık"
If Target > 50 Then Target = Target & " Saatlik"
End Sub
Selam,
Birkaç sorun var.
birincisi;
örneğin hücreye 1 yazıyorum.
1 Yıllık Saatlik Saatlik Saatlik Saatlik...... yüzlerce saatlik yazıyor.
hücreye 60 yazıyorum.
60 Saatlik Saatlik Saatlik Saatlik...... yüzlerce saatlik yazıyor.

ikincisi;
sayfadaki bütün hücrelere yazıyor. Sadece belirlediğim sütuna veya aralığa uygulanmasını nasıl sağlayabilirim?

Kolay gelsin.
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [a1:a100]) Is Nothing Then Exit Sub
If Target >= 0 And Target <= 50 Then Target.NumberFormat = "0 ""Yıllık"""
If Target >= 51 And Target <= 15000 Then Target.NumberFormat = "0 ""Saatlik"""
If Target >= 15001 And Target <= 500000 Then Target.NumberFormat = "0 ""Paket"""
If Target >= 500001 And Target <= 1000000 Then Target.NumberFormat = "0 ""İnsört"""
End Sub
Bu şekilde kendinize uyarlamaya çalışın.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Çok teşekkür ederim. A sütunu tam istediğim gibi olmuş. Ancask yine bir sorun var. Şöyle ki;
A sütununda herşey normal. ancak B,C,D,E sütunlarındaki tüm sayıların yanına "insört" yazıyor.
Nasıl çözebiliriz?
binlik ayıraç problemi vardı. 0 yerine #,# yazarak çözdüm. mantıklı mıdır?
Kolay gelsin.
 
Son düzenleme:

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
3.mesajınızda sayıları nasıl yazmışsınız, binlik ayırıcı var mı?,
Kod:
#.##0,00
B-C-D-E sütunlarını Hücre Biçimlendirmede "Genel" yaparsanız sorun kalmaz. Önceki uygulamaların kalıntılarıdır.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Sayın Seyit Tiken,
Binlik ayıraç problemi artık yok.
B,C,D,E.... sütunlarındaki sorun Kodu başka yeni dosyada da yapınca oldu. Ancak, Dediğiniz gibi "Genel" Yapınca kalıntı kalmıyor.
Daha önemli bir sorun daha var.
Diyelim ki "Saatlik" metnini kodlardan değiştirdiğimde, sayfadaki "Saatlik" olanlar değişmiyor. ancak yeni sayı girdiğimde değişiyor. makroyu tekrar çalıştırıyorum veya dosyayı tekrar açıp kapatıyorum yine değişmiyor. ancak değerleri yeniden girdiğimde değişiyor. yüzlerce satırı yanlış yapmadan tekrar girmek çok zor.
Kolay gelsin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.


Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim HÜCRE As Range
    
    If Intersect(Target, Range("A1:A100")) Is Nothing Then Exit Sub
    
    On Error Resume Next
    
    For Each HÜCRE In Range("A1:A100")
        If HÜCRE.Value >= 0 And HÜCRE.Value <= 50 Then HÜCRE.NumberFormat = "#,##0.00 ""Yıllık"""
        If HÜCRE.Value >= 51 And HÜCRE.Value <= 15000 Then HÜCRE.NumberFormat = "#,##0.00 ""Saatlik"""
        If HÜCRE.Value >= 15001 And HÜCRE.Value <= 500000 Then HÜCRE.NumberFormat = "#,##0.00 ""Paket"""
        If HÜCRE.Value >= 500001 And HÜCRE.Value <= 1000000 Then HÜCRE.NumberFormat = "#,##0.00 ""İnsört"""
    Next
End Sub
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Sayın Korhan Ayhan,
Çözüm için çok teşekkürler. Yapılan Değişiklikler güncellenebiliyor. Emeğinize sağlık. Buradan Sayın Seyit Tiken'e de çok teşekkür ediyorum.
Musaadenizle bir isteğim daha olacak.
Sunduğunuz çözüm sadece A1:A100 arasında geçerli.
Yine aynı sayfanın örneğin B1:B100 arasında farklı koşullu biçimlendirme yapmak istesem kodlara ne gibi değişiklik yapmam gerekir?
Kolay gelsin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Kodu değiştirmek gerekir. Koşulunuzu belirtin ona göre düzenleyelim.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
örneğin
a1:a100 deki sayılar için sizin çözümünüzdekiler geçerli olsun.

d1:d100 sütununda sayılar için;
negatif sayılar kırmızı olsun ve yanına "bakımı geçiyor" yazsın
pozitif sayılar için yeşil olsun ve yanına "bakıma daha var" yazsın

e1:e100 sütunundaki sayılar için;
0 ila 50.000 rasındaki sayılar için "Saat"
50.000 1.000.000 arasındaki sayılar için "Sayaç"
v.s. gibi.
Kolay gelsin.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Aşağıdaki kodu denermisiniz.

Kod:
Option Explicit
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim HÜCRE As Range
    
    If Intersect(Target, Range("A1:A100,D1:D100,E1:E100")) Is Nothing Then Exit Sub
    
    On Error Resume Next
    
    Application.ScreenUpdating = False
    
    For Each HÜCRE In Range(Cells(1, Target.Column), Cells(100, Target.Column))
        If HÜCRE.Column = 1 Then
        If HÜCRE.Value >= 0 And HÜCRE.Value <= 50 Then HÜCRE.NumberFormat = "#,##0.00 ""Yıllık"""
        If HÜCRE.Value >= 51 And HÜCRE.Value <= 15000 Then HÜCRE.NumberFormat = "#,##0.00 ""Saatlik"""
        If HÜCRE.Value >= 15001 And HÜCRE.Value <= 500000 Then HÜCRE.NumberFormat = "#,##0.00 ""Paket"""
        If HÜCRE.Value >= 500001 And HÜCRE.Value <= 1000000 Then HÜCRE.NumberFormat = "#,##0.00 ""İnsört"""
    
        ElseIf HÜCRE.Column = 4 Then
        HÜCRE.NumberFormat = "[Green]#,##0.00 ""Bakıma Daha Var"";[Red]-#,##0.00 ""Bakımı Geçiyor"";""-"""
        
        ElseIf HÜCRE.Column = 5 Then
        If HÜCRE.Value >= 0 And HÜCRE.Value <= 50000 Then HÜCRE.NumberFormat = "#,##0.00 ""Saat"""
        If HÜCRE.Value >= 50001 And HÜCRE.Value <= 1000000 Then HÜCRE.NumberFormat = "#,##0.00 ""Sayaç"""
        End If
    Next
 
    Application.ScreenUpdating = True
End Sub
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Çok teşekkürler Sayon Korhan Ayhan,
Elinize sağlık süper olmuş.
sütun değiştirmek istediğimde önce Range("A1:A100,D1:D100,E1:E100") kısmındakileri
daha sonra
Column = 4 Then deki 4 ve 5 leri değiştireceğim. satır değiştirmek istediğimde ise Range("A1:A100,D1:D100,E1:E100") deki 100 sayılarını ve
(Cells(1, Target.Column), Cells(100, Target.Column) deki 100 leri değiştireceğim. Doğru mudur?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,738
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Evet doğrudur.
 
Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Çok sağolun. Emeğinize sağlık. Çok teşekkürler.
 
Üst