• DİKKAT

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

Conditional Formatting (Koşullu biçimlendirme)

Katılım
9 Mart 2007
Mesajlar
17
Excel Vers. ve Dili
2003 İngilizce
Merhaba,

yapmaya çalıştığım şey, A1 hücresinde yazan veriye göre B1 hücresi ona göre format alsın. Mesela A1 hücresinde X verisi varsa, B1 hücresine girceğim rakam otomatik YTL olsun, A1'de Y verisi varsa gireceğim rakam euro olsun. B1 hücresine veri girişi yapacağım için, o hücre üzerinde herhangi bir formül yazma şansım yok. Nasıl bir çözüm önerirsiniz? (Excel'i İngilizce kullaniyorum)
 
Merhaba,

yapmaya çalıştığım şey, A1 hücresinde yazan veriye göre B1 hücresi ona göre format alsın. Mesela A1 hücresinde X verisi varsa, B1 hücresine girceğim rakam otomatik YTL olsun, A1'de Y verisi varsa gireceğim rakam euro olsun. B1 hücresine veri girişi yapacağım için, o hücre üzerinde herhangi bir formül yazma şansım yok. Nasıl bir çözüm önerirsiniz? (Excel'i İngilizce kullaniyorum)

Sayfanın kod bolümüne aşağıdaki kodları yazın.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
Satır = "B" & Target.Row & ":B" & Target.Row
Select Case Target
Case "": Range(Satır).NumberFormat = ""
Case "X": Range(Satır).NumberFormat = "#,##0.00 $"
Case "x": Range(Satır).NumberFormat = "#,##0.00 $"
Case "Y": Range(Satır).NumberFormat = "[$€-2] #,##0.00"
Case "y": Range(Satır).NumberFormat = "[$€-2] #,##0.00"
Case "Z": Range(Satır).NumberFormat = "[$$-409]#,##0.00"
Case "z": Range(Satır).NumberFormat = "[$$-409]#,##0.00"
End Select
End Sub

Bu kodlarla:
X-x YTL
Y-y Euro
Z-z $

yazdırabilirsiniz.

Örnek dosya ekte.

.
 
Yardım için çok teşekkürler.

Kodu son olarak şu hale getirdim.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G2]) Is Nothing Then Exit Sub
Satır = "M2"
Select Case Target
Case "": Range(Satır).NumberFormat = "#,##0.00 $"
Case "X": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case "Y": Range(Satır).NumberFormat = "[$€-2] #,##0"
End Select
End Sub

Ancak son yapmaya çalıştığım şey şu. X ve Y olursa euro olsun, boş ya da başka birşey olursa YTL olsun. Bu kod ile boşu yaptım ama başka birşey olursada biraz takıldım. Son bir yardım çok makbule geçer.
 
Yardım için çok teşekkürler.

Kodu son olarak şu hale getirdim.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G2]) Is Nothing Then Exit Sub
Satır = "M2"
Select Case Target
Case "": Range(Satır).NumberFormat = "#,##0.00 $"
Case "X": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case "Y": Range(Satır).NumberFormat = "[$€-2] #,##0"
End Select
End Sub

Ancak son yapmaya çalıştığım şey şu. X ve Y olursa euro olsun, boş ya da başka birşey olursa YTL olsun. Bu kod ile boşu yaptım ama başka birşey olursada biraz takıldım. Son bir yardım çok makbule geçer.

Aşağıdaki şekilde deneyin.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G2]) Is Nothing Then Exit Sub
Satır = "M2"
Select Case Target
Case Is = "": Range(Satır).NumberFormat = "#,##0.00 $"
Case Is = "X": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is = "Y": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is <> "X": Range(Satır).NumberFormat = "#,##0.00 $"
Case Is <> "Y": Range(Satır).NumberFormat = "#,##0.00 $"

End Select
End Sub

.
 
&#199;ok te&#351;ekk&#252;rler i&#351;imi g&#246;rd&#252;. Sadece YTL TL g&#246;z&#252;k&#252;yor ama kodda bir de&#287;i&#351;iklik olmad&#305;&#287;&#305;na g&#246;re bende bir problem var.
&#304;stedi&#287;im para birimini tan&#305;mlayabilece&#287;im, kodlar&#305;n listesi tarz&#305; bir bilgi var m&#305;d&#305;r?
Ben #.##0 "YTL";[Red]-#.##0 "YTL" &#351;eklinde denedim ama YTL hata veriyor.

Yeniden te&#351;ekk&#252;rler.
 
Çok teşekkürler işimi gördü. Sadece YTL TL gözüküyor ama kodda bir değişiklik olmadığına göre bende bir problem var.
İstediğim para birimini tanımlayabileceğim, kodların listesi tarzı bir bilgi var mıdır?
Ben #.##0 "YTL";[Red]-#.##0 "YTL" şeklinde denedim ama YTL hata veriyor.

Yeniden teşekkürler.

Makro kaydet - Record new macro ile denemeler yaparak, istediğiniz paraların format kodlarını bulmanız mümkün.

.
 
Hep kulland&#305;&#287;&#305;m taktik, ama bunun i&#231;in akl&#305;ma gelmemi&#351;ti. Te&#351;ekk&#252;rler.
 
&#350;&#246;yle bir sorunla kar&#351;&#305;la&#351;t&#305;m. G2 ye veri, Vlookup ile ba&#351;ka bir tablodan geliyor. Bu sebepten dolay&#305; kod bunu alg&#305;lam&#305;yor ve &#231;al&#305;&#351;m&#305;yor. Bir fikir var m&#305;d&#305;r?
 
Şöyle bir sorunla karşılaştım. G2 ye veri, Vlookup ile başka bir tablodan geliyor. Bu sebepten dolayı kod bunu algılamıyor ve çalışmıyor. Bir fikir var mıdır?

G2'ye girmek koşululya aşağıdaki kodlar çalışır.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G2]) Is Nothing Then Exit Sub
Satır = "M2"
Select Case Target
Case Is = "": Range(Satır).NumberFormat = "#,##0.00 $"
Case Is = "X": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is = "Y": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is <> "X": Range(Satır).NumberFormat = "#,##0.00 $"
Case Is <> "Y": Range(Satır).NumberFormat = "#,##0.00 $"

End Select

End Sub


.
 
Evet G2' ye veriyi kendim girdigim zaman calisiyor. Ama uygulama yaptigim tabloda G2 veriyi vlookup ile baska bir yerden cekiyor. O zaman calismiyor. Bunun cozumunu ariyorum. Bulamadim hala. Var m&#305;d&#305;r bir yolu?
 
Evet G2' ye veriyi kendim girdigim zaman calisiyor. Ama uygulama yaptigim tabloda G2 veriyi vlookup ile baska bir yerden cekiyor. O zaman calismiyor. Bunun cozumunu ariyorum. Bulamadim hala. Var m&#305;d&#305;r bir yolu?

G2'deki form&#252;l&#252; de macro ile girersek olabilir.

Bir &#246;rnek dosya ekleyin. Bakal&#305;m.

.
 
Dosyayı ekliyorum. Kodu eklemedim. Çünkü üzerinde kendi çalışan kodum da var, bu kodu ekleyince o da çalışmadı.


Bu entegre etmeye çalıştığımız kod.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G14]) Is Nothing Then Exit Sub
Satır = "M14"
Select Case Target
Case Is = "": Range(Satır).NumberFormat = "#,##0 ""YTL"";[Red]-#,##0 ""YTL"""
Case Is = "X": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is = "Y": Range(Satır).NumberFormat = "[$€-2] #,##0"
Case Is <> "X": Range(Satır).NumberFormat = "#,##0 ""YTL"";[Red]-#,##0 ""YTL"""
Case Is <> "Y": Range(Satır).NumberFormat = "#,##0 ""YTL"";[Red]-#,##0 ""YTL"""

End Select
End Sub
 
Son düzenleme:
Kodlar&#305; a&#351;a&#287;&#305;daki &#351;ekilde deneyin.


Private Sub Worksheet_Change(ByVal Target As Range)
Range("G2").Select
Range("D2").Select
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [G2]) Is Nothing Then Exit Sub
Sat&#305;r = "M2"
Select Case Target
Case Is = "": Range(Sat&#305;r).NumberFormat = "#,##0.00 $"
Case Is = "X": Range(Sat&#305;r).NumberFormat = "[$&#8364;-2] #,##0"
Case Is = "Y": Range(Sat&#305;r).NumberFormat = "[$&#8364;-2] #,##0"
Case Is <> "X": Range(Sat&#305;r).NumberFormat = "#,##0.00 $"
Case Is <> "Y": Range(Sat&#305;r).NumberFormat = "#,##0.00 $"

End Select

End Sub



.
 
Bu şekilde olduğu zaman veri girişi çok zorlaşıyor. Devamlı cursor başa dönüyor. Elle hücrenin üstünden geçince de değişiyor, bu şekilde kullanmaya karar verdim. Ayırdığınız zaman ve desteğiniz için teşekkür ederim.
 
Geri
Üst