Değerin başına 0 eklemek.

Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Hücreye girilen rakamların başına otomatik 0 eklemesini istiyorum. Hücreye 6 haneden oluşan kod girilecek.
Örneğin 100 girlidiğinde hücre değerinin başına üç sıfır eklenecek (000100) şeklinde. Hücre biçimlerinde yapıyorum fakat görünüm olarak alıyor. Hücre içeriğinde yer almamaktadır.Nasıl bir yol izlenmelidir.
Teşekkürler.
 

S.Yiğit

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2008
Mesajlar
1,748
Excel Vers. ve Dili
2019 TR
Merhaba,

Verinizin A1 hücresinde olduğunu düşünürsek aşağıdaki formülü sonucu görmek istediğiniz yere uygulayınız.

=YİNELE("0";6-UZUNLUK(A1))&A1
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Aynı hücrede çözülebilr mi.İkinci bir hücre kullanılmadan. Kullanmış olduğum tablo bir kaç tablo ile bağlantılı olması nedeniyle farklı bir yol izlenebilir mi?
İlginizden ötürü çok teşekkürler.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
Aynı hücrede çözülebilr mi.İkinci bir hücre kullanılmadan. Kullanmış olduğum tablo bir kaç tablo ile bağlantılı olması nedeniyle farklı bir yol izlenebilir mi?
İlginizden ötürü çok teşekkürler.
merhaba
A sütununu metin olarak biçimlendirip, bu sütuna sayı girerek deneyiniz.

kodu, sayfanın kod bölümüne yazınız.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub
Target = Format(Target.Text, "000000")
End Sub
 

Korhan Ayhan

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

Aşağıdaki kodu sayfanızın kod bölümüne uygulayın. Kod A sütunu için çalışmaktadır.

Kod:
Option Explicit
 
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
    On Error GoTo Son
    Application.EnableEvents = False
    Target.NumberFormat = "@"
    Target = Format(Target.Value, "000000")
Son:
    Application.EnableEvents = True
End Sub
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
İlginizden ötürü teşekkürler.
Her ikisindeki fark nedir.
Emeğinize ve ilminize sağlık.
 

Korhan Ayhan

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

Süleyman beyin önerdiği kodda sütunu önceden metin formatında biçimlendirmeniz gerekiyor. Benim önerdiğim kod işlem yapılan hücreyi ilk olarak metin formatında biçimlendiyor. Sonra değeri "000000" formatına çeviriyor.

Ayrıca Süleymen beyin kodunu adımlayarak çalıştırdığınızda sonsuz döngüye girer. Bunu ancak adımlayarak görebilirsiniz. Ben bu sebeple "Application.EnableEvents = False" komutunu kullandım. Bu komut kodun bir kez çalışmasını sağlar. Fakat kullanımı biraz risklidir. Bu sebeplede kodun hata vermesi durumunda "Son" değişkenine yönlendirerek riski ortadan kaldırmaya çalıştım.

Test etmek için benim önerdiğim kodu boş bir dosyaya uygulayın. A sütununda bir hücreye değer girin. Sonucu gözlemleyin. Daha sonra "Son" değişkeninden sonraki satırın başına tek tırnak işareti ile pasif yapıp A sütununa tekrar bir değer girin. Göreceksiniz ki işlem yapılamıyor. Bu sebeple "Application.EnableEvents = False" komutu risklidir.

Kodlarda bir hata oluşup bu komut FALSE olarak kalırsa sayfada yaptığınız işlemler doğru görünmez. Bu sebeple kod bir şekilde TRUE değerini almak zorundadır. Bunu yapmak içinde aşağıdaki kodu bir kez çalıştırmak yeterlidir.

Kod:
Sub OLAYLARI_ETKİNLEŞTİR()
    Application.EnableEvents = True
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba

kod işlem yapmadan sadece format değişikliği yaptığı için Application.EnableEvents satırını atlamışım.
Korhan bey haklı, uyardığı için teşekkür ederim.

durumu gözlemleyebilmek için küçük bir hesap yapmak yeterli olur.
kod bu haliyle sonsuz döngüye girecektir, esc ile kodu durdurun.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub
Target = Target * 2
Target = Format(Target.Text, "000000")
End Sub
aynı kod bu haliyle işlem yaptığında sonsuz döngüye girmez.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo dip
    Application.EnableEvents = False

If Intersect(Target, Range("a:a")) Is Nothing Then Exit Sub
Target = Target * 2
Target = Format(Target.Text, "000000")
dip:
    Application.EnableEvents = True
End Sub
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Sanki verileri 2 ile çarpıp yazıyor gibi geldi bana.

Option Explicit ne görev yapmaktadır. bunu kaldırsak ne olur. Aşağıdaki kod ile çakışıyor.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Dim Ust_Sat_Ahsp&, Alt_Sat_Ahsp&
If Application.CutCopyMode = xlCopy Or Application.CutCopyMode = xlCut Then Exit Sub
If Intersect(Target, Range("G7:G10000")) Is Nothing Then
Range("D7:D10000").Interior.Color = RGB(234, 234, 234)
Range("D7:D10000").Font.ColorIndex = 0
Exit Sub
Else
Range("D7:D10000").Interior.Color = RGB(234, 234, 234)
Range("D7:D10000").Font.ColorIndex = 0
End If
If Target.Count > 1 Then
With Target
Ust_Sat_Ahsp = .Row
Alt_Sat_Ahsp = .Rows.Count + .Row - 1
End With
If Ust_Sat_Ahsp < 7 And Alt_Sat_Ahsp < 10001 Then
Range(Cells(7, 4), Cells(Alt_Sat_Ahsp, 4)).Interior.ColorIndex = 3 And Font.ColorIndex = 1

ElseIf Ust_Sat_Ahsp < 7 And Alt_Sat_Ahsp > 10000 Then
Range(Cells(7, 4), Cells(10000, 4)).Interior.ColorIndex = 3 And Font.ColorIndex = 1
ElseIf Ust_Sat_Ahsp > 7 And Alt_Sat_Ahsp > 10000 Then
Range(Cells(Ust_Sat_Ahsp, 4), Cells(10000, 4)).Interior.ColorIndex = 3 And Font.ColorIndex = 1
Else
Range(Cells(Ust_Sat_Ahsp, 4), Cells(Alt_Sat_Ahsp, 4)).Interior.ColorIndex = 3 And Font.ColorIndex = 1
End If
Else
If Target.Row < 7 Or Target.Row > 10000 Then
Exit Sub
Else
Cells(Target.Row, 4).Interior.ColorIndex = 3
Cells(Target.Row, 4).Font.ColorIndex = 1
End If
End If
End Sub
 
Son düzenleme:
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Düşeyara kullanmak istiyorum metin olduğundan osa gerekki istenen datayı almamaktadır.
6 karakerden sonrasının alınmması sağlanbilir. 000000= 6 dan fazla girilirse en son 6 hane baz alınabilir mi
Teşekkürler.
 

Korhan Ayhan

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

Süleymen beyin verdiği en son kod "Application.EnableEvents = False" komutunu deneme yapmanız içindir. Değerleri 2 ile çarparak bu komutun ne yaptığını göstermeye çalışmış.

"Option Explicit" komutu ise genellikle "Dim" ile başlayan değişken tanımlamaları yapmanız için sizi mecbur bırakır. Yani bu komut varsa "Dim" ile başlayan tanımlamaları yapmak zorundasınız. Bu komut deklarasyon bölümüne yani kodlarınızın bulunduğu penceredeki EN ÜST SATIRA BİR KEZ yazılır.

En üstteki komutu bırakın ve diğer "Option Explicit" satırlarını silin. Bu şekilde bu komutun oluşturduğu hatadan kurtulursunuz.
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Hücredeki karaker sayısını 6 ile sınırlamak istiyorum hücreye giriş yapılıpp çıkıldığında ilave ekleme yapılıyor.
Metin olmasından kaynaklı olsa gerekki düşeyara fonksiyonu ile ver alamıyorum.
Nasıl bir yöntem izlenmelidir.

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D:D")) Is Nothing Then Exit Sub
On Error GoTo Son
Application.EnableEvents = False
Target.NumberFormat = "@"
Target = Format(Target.Value, "000000")
Son:
Application.EnableEvents = True
End Sub
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba

veri / doğrulama / ayarlar / metin uzunluğu / en fazla:6

düşeyara fonksiyonunda metin olarak biçimlendirilen sayıyı, sayı listesinde bulamazsınız.
aranan veri ile liste uyumlu olmalıdır
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Olmadı örnek ile desteğiniz mümkün olurmu.
Teşekkürler.
 

Korhan Ayhan

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

Ekteki örnek dosyayı incelermisiniz.
 

Ekli dosyalar

Korhan Ayhan

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

Siz çalıştıramadığınız dosyanız ekleyin. Dosyanız üzerinden çözüm üretelim.

Büyük ihtimale metin olduğu için değeri alamıyorsunuz. Bu sebeple her iki alandaki değeri eşitlemeniz gerekiyor.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,421
Excel Vers. ve Dili
excel 2010
merhaba

bunu deneyiniz.
Kod:
=DÜŞEYARA(A1*1;Sayfa2!A$1:C$100;2;0)
 
Katılım
29 Kasım 2007
Mesajlar
332
Excel Vers. ve Dili
Office2003
Dur penceresinde ESC ile çıkılıdığında koşul işlemeden giriş yapılabiliyor .(veri / doğrulama / ayarlar / metin uzunluğu / en fazla:6) nasıl durudurabiliriz.
 
Üst