• DİKKAT

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

Hücreye veri yazdırma

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,782
Excel Vers. ve Dili
2021 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,377
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
 
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,377
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.
 
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,652
Excel Vers. ve Dili
Excel : 2010
Alternatif (makrosuz) :
228263
 
Üst