Hücre biçimini ayarlamak

Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
İyi Günler
Benim Yapmak istediğim bir hücrenin biçimini makro ile değiştirmek
örneğin 30 yazdığımda 30 O/E veya 30 R yazması bunu hücre biçimlerinde isteğe uyarlanmış ta türe #,## "O/E" yaptığımda oluyor fakat makro ile yapmayı beceremedim. Ã?zet Olarak bir textboxa 30 diğer bir text boxa O/E terimlerini girdiğimde 30 O/E göstermesi yardımcıolursanız sevinirim 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 makroyu sayfanın kod sayfasına kopyalayıp deneyiniz. İstediğiniz bu şekilde olduğunu düşünerek hazırladım.

sayının sonuna O/E yazması için;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.NumberFormat = "General \O\/\E"
End Sub

sayının sonuna R yazması için;

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ActiveCell.NumberFormat = "General R"
End Sub

selamlar
 
Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
Teşekkür

Teşekkür ederim uzun zamandır görüşemedik inşallah bu gibi sıkıntıları yaşamayız bu sitede emeği geçen herkese kolaygelsin.
 
Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
Sorun

İstediğim sabit bir yazı ekleyebildim ama text boxa girilecek farklı metinler olduğundan onu beceremedim ben de şöyle bir standart yapmayı denedim eğer içinde O/E yazıyorsa O/E yi ekle gibi fakat o/E veya O/e vb türlerde girildiğinde olmuyor

if textbox1 = "O/E" or "O/e" or ..... gibi olasılıkları yazınca type is mismatch hatası verdi

text boxa girilen değeri veya kelimeyi hücre biçimine ekleme olasılığı varmı bu konuda yardımcı olursanız sevinirim 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
Sn Fenomen

Sorunuz üzerine biraz düşündüm. Aşağıdaki gibi kodlar sanırım isteğinizi karşılar. Aşağıda iki textbox için kod yazılmıştır. Textbox1 "A1" hücresine değer atıyor. Textbox2 ise "A1" hücresindeki değerin biçimini değiştiriyor.
Textbox2'ye en az üç basamaklı bir biçim girin örneğin "O/E" şeklinde, daha az basamaklı değer için iki nolu koddaki mid formüllerini biçim uzunluğu kadar azaltın (OE için iki,O için bir mid kalsın). İkinci kodun yazılan biçim uzunluğunu dikkate alacak şekilde dahada geliştirilmesi mümkün.

selamlar

Kod:
Private Sub TextBox1_Change()
[a1] = TextBox1.Value
End Sub

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
[a1].NumberFormat = "General \" & Mid(TextBox2.Value, 1, 1) & "\" & Mid(TextBox2.Value, 2, 1) & "\" & Mid(TextBox2.Value, 3, 1)
End Sub
 
Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
teşekkür

ilgine teşekkür ederim istediğim bu bir de buna şöyle bir şey ekleme olasılığımız varsa tam istenilen şekilde çalışacağına inanıyorum:

eğer textbox2e girilen karakter sayısı 1 ise then
[a1].NumberFormat = "General \" & Mid(TextBox2.Value, 1, 1)

eğer textbox2e girilen karakter sayısı 2 ise then
[a1].NumberFormat = "General \" & Mid(TextBox2.Value, 1, 1) & "\" & Mid(TextBox2.Value, 2, 1)
...

bunu 5 veya 6 yakardar uzatmemız yetecektir ama benim "eğer textbox2e girilen karakter sayısı 1 ise ..." yi bilgisayara nasıl anlatacaz onu bilmiyorum :) iyi çalışmalar şimdiden teşekkür ederim
 

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
Textbox2 için olan kodu aşağıdaki gibi değiştirin


Kod:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
b = Len(TextBox2.Value)
Dim par(6)
If b > 6 Then Exit Sub
son = ""
For c = b To 1 Step -1
par(c) = Mid(TextBox2.Value, c, 1)
son = "\" + par(c) + son
Next c
[a1].NumberFormat = "General " & son
End Sub
selamlar
 
Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
işte bu

çok saol tam bana lazım olan kod çok teşekkür ederim yardımlarınız için
 
Üst