Hücreye veri yazdırma

furkani

Altın Üye
Katılım
24 Şubat 2020
Mesajlar
64
Excel Vers. ve Dili
Microsoft Office Standard 2019
Altın Üyelik Bitiş Tarihi
26-04-2025
İyi günler arkadaşlar,

Ben fatura numarası girişi için bir kolaylık rica ediyorum, şöyle ki;
Temel numara TTK2021000000000 (TTK2021 sabit devamında 9 hane olacak şekilde)
Hücreye 1 yazdığımda TTK2021000000001 yazsın,
Hücreye 11 yazdığımda TTK2021000000011 yazsın,
Hücreye 111111 yazdığımda TTK2021000111111 yazsın gibi.

Şimdiden teşekkürler, iyi forumlar.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Bunu yapmak istediğiniz sayfa adını sağ tıklatın "Kod Görüntüle" seçin, açılan sayfaya aşağıdaki kodlar kopyalayın.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
        If Target.Text = "" Then
            Exit Sub
        ElseIf Len(Target.Text) > 9 Then
            MsgBox "Bu hücreye 9 karakterden fazla giriş yapılamaz.", vbExclamation
            Target = ""
            Exit Sub
        End If
        Application.EnableEvents = False
        Target = "TTK2021" & WorksheetFunction.Rept("0", 9 - Len(Target)) & Target
        Application.EnableEvents = True
    End If
End Sub
Bu kodlar A1:A1000 aralığındaki hücrelerde çalışır, değiştirmek için şu satırda düzenleme yapın.
Kod:
If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
 
Son düzenleme:

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Merhaba, deneme yaparken çözüm paylaşılmış ve aynı kodlar oldu ama hazırlamışken paylaşayım. :)

A sütununa göre çalışır, alt satırdaki 1 değerini istediğiniz bir sütun numarası ile değiştirebilirsiniz.
If Target.Column <> 1 Then Exit Sub
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sabit As String, deger As Integer, kac_sifir As Byte, yeni_deger As String

If Target.Column <> 1 Then Exit Sub
    If Len(Target.Value) >= 16 Or Target.Value = Empty Then Exit Sub
        sabit = "TTK2021"
        deger = Target.Value
            If Len(Target.Value) > 9 Then
                MsgBox "Hatalı Fatura Numarası Girdiniz!", vbExclamation, "Uyarı"
                Target.Value = Empty
                Exit Sub
            End If
        kac_sifir = 9 - Len(Target.Value)
        yeni_deger = sabit & WorksheetFunction.Rept(0, kac_sifir) & deger
        Target.Value = yeni_deger

sabit = "": yeni_deger = ""
deger = 0: kac_sifir = 0
End Sub
 

furkani

Altın Üye
Katılım
24 Şubat 2020
Mesajlar
64
Excel Vers. ve Dili
Microsoft Office Standard 2019
Altın Üyelik Bitiş Tarihi
26-04-2025
Elinize sağlık.
Gayet güzel çalışıyor, ancak birden fazla hücreyi seçip delete yaptığımda;
If Len(Target.Value) >= 16 Or Target.Value = Empty Then
satırında hata veriyor.
Bilginize
 

AdemCan

Altın Üye
Destek Ekibi
Katılım
1 Eylül 2008
Mesajlar
1,386
Excel Vers. ve Dili
2019 TR
Kod:
If Target.Column <> 1 Then Exit Sub
ve
Kod:
If Not Intersect(Target, Range("A1:A1000")) Is Nothing Then
satırlarından sonra
Kod:
If Selection.Count > 1 Then Exit Sub
satırını ekleyiniz. Seçilen hücre sayısı 1 den büyük olursa diğer kodlar çalışmadan işlem sonlanır.
 

furkani

Altın Üye
Katılım
24 Şubat 2020
Mesajlar
64
Excel Vers. ve Dili
Microsoft Office Standard 2019
Altın Üyelik Bitiş Tarihi
26-04-2025
Süper, elinize sağlık. Saygılar,
 

Seyit Tiken

Uzman
Uzman
Katılım
23 Ağustos 2005
Mesajlar
4,651
Excel Vers. ve Dili
Excel : 2010
Alternatif (makrosuz) :
228263
 
Üst