excel otomatik tamamlama hakkında yardım

Katılım
10 Ocak 2011
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
29/12/2022
merhaba iyi günler ALM/17 enter tuşuna bastığınızda otomatik evrak numarasını tamamlayacak ZRV2020000000017)
KAA/5 yazıp entera basıncada hücre KAA2020000000005 Olmasını istiyorum. Yani ilk 3 hane yazıp slash bastıktan sonra son haneye gelecek rakamları yazıyorum ve entera basıyorum. ilk 3 haneden sonra 202 getirip ondan sonraki rakamlar 0 olacak şekilde dolduracak. yani ben atıyorum KAA/56825 Yazıp bastığımda hücre böyle olacak KAA2020000056825

Yardımcı olursanız çok sevinirim.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodu ilgili sayfanın kod bölümüne (sayfa adına sağ tıklayıp kod görüntüle deyince açılan sayfaya) yapıştırırsanız, A1:a100 aralığına girdiğiniz verileri istediğiniz düzene getirir:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Len(Target) = Len(Replace(Target, "/", "")) Then
    If Len(Target) > 3 Then
        kod = Left(Target, 3)
        no = Right(Target, Len(Target) - 3)
        Application.EnableEvents = False
            Target = kod & 202 & WorksheetFunction.Rept(0, 10 - Len(no)) & no
        Application.EnableEvents = True
        Exit Sub
    Else
        MsgBox "Uygun düzende veri giriniz", vbCritical
        Exit Sub
    End If
Else
    kod = Left(Target, WorksheetFunction.Find("/", Target) - 1)
    no = Right(Target, Len(Target) - Len(kod) - 1)
    sifir = WorksheetFunction.Rept(0, 10 - Len(no))
    Application.EnableEvents = False
        Target = kod & 202 & WorksheetFunction.Rept(0, 10 - Len(no)) & no
    Application.EnableEvents = True
End If
End Sub
 
Son düzenleme:

excel41

Destek Ekibi
Destek Ekibi
Katılım
1 Ocak 2013
Mesajlar
759
Excel Vers. ve Dili
Excel 2019 Türkçe
Fonksiyon lu çözümü

KAA/56825

KAA2020000056825


Kod:
=BİRLEŞTİR(SOLDAN(A1;BUL("/";A1)-1);202;YERİNEKOY(YİNELE((16-(UZUNLUK(SOLDAN(A1;BUL("/";A1)-1))+UZUNLUK(202)+UZUNLUK(PARÇAAL(A1;BUL("/";A1)+1;100))))*0+1;16-(UZUNLUK(SOLDAN(A1;BUL("/";A1)-1))+UZUNLUK(202)+UZUNLUK(PARÇAAL(A1;BUL("/";A1)+1;100))));1;0);PARÇAAL(A1;BUL("/";A1)+1;100))
 
Katılım
10 Ocak 2011
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
29/12/2022
çok teşekkür ederim ikiside çok işime yaradı yalnız şöyle bi durum var bu girdigim sutunda sadece bu tipler çok küçük hanelılerde var ben onu normal elle giricem bu uzun tipleri sadece bu sistemle girmek istiyorum.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Peki hangi verinin kısa hangi verinin uzun olması gerektiğini excel nasıl bilecek?
 
Katılım
10 Ocak 2011
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
29/12/2022
yani kimisi 156789 mesela bunları elle gircem ama ne zaman KLD/13 Enter bastıgımdada sızın yaptıgınız gibi yapsın istiyorum yani slash oldugu yerde yukarıdaki yöntem olsun ama / olmadıgı yerde normal rakamlar manuel girebileyim. Böyle birşey olabilirmi yusuf bey
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodu deneyin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Len(Target) <> Len(Replace(Target, "/", "")) Then
    kod = Left(Target, WorksheetFunction.Find("/", Target) - 1)
    no = Right(Target, Len(Target) - Len(kod) - 1)
    sifir = WorksheetFunction.Rept(0, 10 - Len(no))
    Application.EnableEvents = False
        Target = kod & 202 & WorksheetFunction.Rept(0, 10 - Len(no)) & no
    Application.EnableEvents = True
End If
End Sub
Bu arada ilk kodda deneme için bazı kontrol satırları vardı. Onları sildim, #2 nolu mesajda ilk kodun olması gereken hali vardır.
 
Katılım
10 Ocak 2011
Mesajlar
48
Excel Vers. ve Dili
2007
Altın Üyelik Bitiş Tarihi
29/12/2022
Aşağıdaki kodu deneyin:

PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [A1:A100]) Is Nothing Then Exit Sub
If Target = "" Then Exit Sub
If Len(Target) <> Len(Replace(Target, "/", "")) Then
    kod = Left(Target, WorksheetFunction.Find("/", Target) - 1)
    no = Right(Target, Len(Target) - Len(kod) - 1)
    sifir = WorksheetFunction.Rept(0, 10 - Len(no))
    Application.EnableEvents = False
        Target = kod & 202 & WorksheetFunction.Rept(0, 10 - Len(no)) & no
    Application.EnableEvents = True
End If
End Sub
Bu arada ilk kodda deneme için bazı kontrol satırları vardı. Onları sildim, #2 nolu mesajda ilk kodun olması gereken hali vardır.

tam istediğim gibi oldu çok teşekkürler.
 
Üst