Makro İle Sütun şeklinde Hücre Biçimlendirme Hk.

Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Merhaba;


Sayfada bulunan hücrelerin kopyala yapıştır sırasında bozulmaması için,

Makro ile hücre biçimlendirmeyi sabitleye bilirmiyiz. Bununla ilgili örnekler verirseniz çok sevinirim.

Örn. B Sütunu a değer 156897458 bunu 1.5689.7458 yapabilirmi ?
D Sütunu a "BUNUN ADI KLAVYE","bunun adı klavye"
"bUnun ADI KLacYE" girdiğimde "Bunun Adı Klavye" Yapabilirmi? Yazım denetimi.
E Sütunu a sadece Sayı girmeyi.
F Sütunu a 011206 girdiğimde 01.12.2006 şeklinde yapabilirmi ?

Buradaki amaç makro ile yapmaya çalışma hücre kopyala yapıştır yapıldığında hücrenin biçimi bozulmaması.

İlginiz için şimdiden Teşekkürler.
 

Mahmut Kök

Özel Üye
Katılım
14 Temmuz 2006
Mesajlar
878
Excel Vers. ve Dili
Excel 2007 - Türkçe
Eğer, önceden biçimli bir hücreye başka yerden değer atadığınızda, mevcut hücre biçiminizin değişmesini istemiyorsanız, Özel Yapıştır seçeneğindeki 'değerler'i kullanabilirsiniz.

Sizinkine benzer bir sorunla ben de karşılaşmıştım; şu şekilde çözdüm: Makro kaydeti çalıştırıp, istediğim hücrelere, istediğim biçimlendirmeleri yaptım. Sonra kaydettiğim kodları, kopyala-yapıştır kodlarınının altına ekledim, yani yapıştırınca biçim bozuluyor, makro ile tekrar istediğim hale geliyordu. (İşin tarzancasını yaptım anlayacağınız.)

12122006'nın 12.12.2006 şekline gelmesiyle ilgili de forumda bir konu ve çözümü vardı, eminim.

Daha iyi çözüm önerileri gelecektir eminim, iyi çalışmalar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu sayfanın kod sayfasına kopyalayın. F sütununu metin olarak biçimlendirirseniz kod tarih formatında hata yapmaz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then [b:b].NumberFormat = "#,##0"
If Target.Column = 4 Then Target = Evaluate("=PROPER(" & """" & Target & """" & ")")
If Target.Column = 5 And IsNumeric(Target) = False Then Target = ""
If Target.Column = 6 And Len(Target) = 6 Then Target = Format(CDate(Left(Target, 2) & "." & Mid(Target, 3, 2) & "." & Right(Target, 2)), "dd.mm.yyyy")
End Sub
 
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
2 Sütundaki değere 145060356 girdiğimde bunun 1.4506.0356 olması mümkünmü ?
 
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Sn. LEventM bey verdiğinz kod çalışıyor, yanlız noktaları farklı şekilde atıyor,

145060356 girdiğimde bunu 145.060.356 yapıyor, olması gereken 1.4506.0356 mümkünmü?


Komutunuza ek olarak şunu ekledim;

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next
If Target.Column = 2 Then [b4:b65000].NumberFormat = "#,##0"
If Target.Column = 4 Then Target = Evaluate("=PROPER(" & """" & Target & """" & ")")
If Target.Column = 5 And IsNumeric(Target) = False Then Target = ""
If Target.Column = 6 And Len(Target) = 6 Then Target = Format(CDate(Left(Target, 2) & "." & Mid(Target, 3, 2) & "." & Right(Target, 2)), "dd.mm.yyyy")
If Target.Column = 7 Then [g4:g65000].Font.Name = "Arial Narrow"
If Target.Column = 8 Then [h4:h65000].Font.Size = "8"
End Sub

4 5 6. sütunlarıda satır 4 ten başlatabilirmiyiz ?
 
Son düzenleme:
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Merhaba;

#"."####"."#### bunu yukarıdaki formüle uyarlama şansımız varmı ?
 

Korhan Ayhan

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

Sn. leventm beyin size önerdiği kodu aşağıdaki şekilde değiştirip denermisiniz.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Intersect(Target, [B4:B65536,D4:H65536]) Is Nothing Then Exit Sub
    If IsEmpty(Target) Or InStr(1, Target.Address, ":") <> 0 Then Exit Sub
    If Target.Column = 2 Then [B4:B65536].NumberFormat = "#"".""####"".""####"
    If Target.Column = 4 Then Target = Evaluate("=PROPER(" & """" & Target & """" & ")")
    If Target.Column = 5 And IsNumeric(Target) = False Then Target = ""
    If Target.Column = 6 And Len(Target) = 6 Then Target = Format(CDate(Left(Target, 2) & "." & Mid(Target, 3, 2) & "." & Right(Target, 2)), "dd.mm.yyyy")
    If Target.Column = 7 Then [G4:G65536].Font.Name = "Arial Narrow"
    If Target.Column = 8 Then [H4:H65536].Font.Size = "8"
End Sub
 
Son düzenleme:
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
Sn. COST_CONTROL yard&#305;mlar&#305;n&#305;z i&#231;in Te&#351;ekk&#252;rler.

Bu konuyla ilgili olarak h&#252;creye farkl&#305; ka&#231; de&#287;er daha y&#252;klene bilinir.

Mesala Bolt, &#304;talik, alt&#305; &#231;izgili, yada bol de&#287;il italik de&#287;il, alt&#305; &#231;izgili de&#287;il.
Kenarl&#305;k &#231;izgileri, H&#252;creye girilen yaz&#305;n&#305;n konumu, H&#252;creye sabit renk verme.

Bunlar hakk&#305;nda bilgi vermeniz m&#252;mk&#252;nm&#252; ?
 
Katılım
15 Eylül 2006
Mesajlar
166
Excel Vers. ve Dili
2003 sp2 TR
__________________
As&#305;l Sorumun cevab&#305;n&#305; Sn. LeventM bey verdi, ufak bir problemim oldu bunuda Sn. COST_CONTROL un yard&#305;mlar&#305;yla &#231;&#246;z&#252;ld&#252;. Yard&#305;mlar&#305;n&#305;z i&#231;in Te&#351;ekk&#252;rler.

Yukar&#305;daki sorumun cevab&#305; :) Belki Arkada&#351;lar&#305;ma Laz&#305;m olur d&#252;&#351;&#252;ncesiyle payla&#351;&#305;yorum.
Ba&#351;l&#305;klar&#305; Bozmadan sayfadaki bi&#231;imi korumaya alm&#305;&#351; oluyorsunuz.

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Sheets("Listesi").Unprotect "&#351;ifreniz"
Selection.NumberFormat = "0"".""0000"".""0000"
With Selection.Font
.Name = "Arial Tur"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.ColorIndex = xlAutomatic
End With
Selection.Font.Bold = False
Selection.Font.Italic = False
Selection.Font.Underline = xlUnderlineStyleNone
Sheets("Listesi").Protect "&#351;ifreniz"
End Sub
 
Son düzenleme:
Üst