Cari isim kısaltma

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Cari kod açmayı Excel liste üzerinden yaptığım için pratik oluyor. Ancak listedeki cari isimleri bazen çok uzun oluyor ve bunların kısaltılması gerekiyor. Tek tek düzeltmek oldukça zaman alıyor. Bunu pratik hale getirecek makro olabilir mi diye düşündüm. Danışmak istedim. Aşağıdaki gibi yaklaşık 100 karakterli cari var. Oysa benim kaydetmem gereken en fazla 40 karakterli bir unvan olmalı.

Standart olarak böyle bir unvanı
Konkordata Bil.Tek.Müh.Müş.İnş.San.ve Dış Tic.Ltd.
Şeklinde kısaltıyorum. Bu işlemi pratik hale getirmek mümkün olabilir mi. Zira bazen oldukça fazla sayıda cari oluyor.
Teşekkür ederim.


Konkordata Bilgisayar Teknolojileri Mühendislik Müşavirlik İnşaat Sanayi Ve Dış Ticaret Limited Şirketi

 

uzmanamele

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

A sütununda Firmaların uzun isim ve ünvanları olsun
A1 hücrede "Konkordata Bilgisayar Teknolojileri Mühendislik Müşavirlik İnşaat Sanayi Ve Dış Ticaret Limited Şirketi" yazıyor olsun
A1 hücreyi Ad tanımlama ile "Konkordata" yapın

Listenizde =Konkordata yazdığınızda ekranda "Konkordata Bilgisayar Teknolojileri Mühendislik Müşavirlik İnşaat Sanayi Ve Dış Ticaret Limited Şirketi" yazısı çıkacaktır.
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; sorum galiba yanlış anlaşıldı. Uzun cari isimleri pratik şekilde kısaltarak, muhasebe programına cari isim olarak yüklüyorum. Uzun cari ismin kısaltılması bunun için gerekli. Kısa isimleri liste olarak muhasebe programına aktarmak için toplu ve pratik nasıl isimleri kısaltırım sorunum var.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Merhaba;
Cari kod açmayı Excel liste üzerinden yaptığım için pratik oluyor. Ancak listedeki cari isimleri bazen çok uzun oluyor ve bunların kısaltılması gerekiyor. Tek tek düzeltmek oldukça zaman alıyor. Bunu pratik hale getirecek makro olabilir mi diye düşündüm. Danışmak istedim. Aşağıdaki gibi yaklaşık 100 karakterli cari var. Oysa benim kaydetmem gereken en fazla 40 karakterli bir unvan olmalı.

Standart olarak böyle bir unvanı
Konkordata Bil.Tek.Müh.Müş.İnş.San.ve Dış Tic.Ltd.
Şeklinde kısaltıyorum. Bu işlemi pratik hale getirmek mümkün olabilir mi. Zira bazen oldukça fazla sayıda cari oluyor.
Teşekkür ederim.

Konkordata Bilgisayar Teknolojileri Mühendislik Müşavirlik İnşaat Sanayi Ve Dış Ticaret Limited Şirketi


Bir dizi yada sütundan, belirli kelimelerin kısaltılmış karşılıkları alınabilir.
Cümlede bu kelimelerin kısaltma karşılıkları ile değiştirilebilir.
Bu şekilde Konkordata haricindeki tüm kelilemeleri değiştirdiğinizi düşünün.

Her zaman için ilk yada ilk iki kelimeyi değiştirme dışında tutarak firma ismini koruyabilirsiniz.
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Bu işinizi görür mü ?

Kod:
Sub KelimeKisaltma()
    Dim cümle As String
    Dim kelimeler() As String
    Dim sonuc As String
    Dim i As Integer
    
    cümle = Range("A1").Value
    
    kelimeler = Split(cümle, " ")
    
    sonuc = kelimeler(0) & " "
    
    For i = 1 To UBound(kelimeler)
        If kelimeler(i) = "Limited" Then
            sonuc = sonuc & "Ltd. "
        ElseIf kelimeler(i) = "Şirketi" Then
            sonuc = sonuc & "Şti. "
        Else
            sonuc = sonuc & Left(kelimeler(i), 3) & ". "
        End If
    Next i
    
    MsgBox sonuc
End Sub
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
@recepkull un kodları üzerinden değişiklik ile deneyiniz.

C#:
Sub KelimeKisaltma()
    Dim cümle As String
    Dim kelimeler() As String
    Dim sonuc As String
    Dim i As Integer
    Dim liste(10, 2) As String
    
    
    liste(1, 1) = "BİLGİSAYAR"
    liste(1, 2) = "Bil."
    liste(2, 1) = "TEKNOLOJİLERİ"
    liste(2, 2) = "Tek."
    liste(3, 1) = "MÜHENDİSLİK"
    liste(3, 2) = "Müh."
    liste(4, 1) = "MÜŞAVİRLİK"
    liste(4, 2) = "Müş."
    liste(5, 1) = "İNŞAAT"
    liste(5, 2) = "İnş."
    liste(6, 1) = "SANAYİ"
    liste(6, 2) = "San."
    liste(7, 1) = "TİCARET"
    liste(7, 2) = "Tic."
    liste(8, 1) = "LİMİTED"
    liste(8, 2) = "Ltd."
    liste(9, 1) = "ŞİRKETİ"
    liste(9, 2) = "Şti."
    liste(10, 1) = "KONKORDATA"
    liste(10, 2) = "Kon."
    
   'İlk kaç kelime değişmeyecek
    degismeyecekler = 1
    
    cümle = BKH(Range("A1").Value, 2)
    kelimeler = Split(cümle, " ")
    
    For i = 0 To UBound(kelimeler)
      If i > degismeyecekler - 1 Then
        For j = 1 To UBound(liste)
          If kelimeler(i) = liste(j, 1) Then
               sonuc = sonuc & liste(j, 2) & " "
              Exit For
          End If
        Next j
      Else
        sonuc = sonuc & kelimeler(i) & " "
      End If
    Next i
    
    MsgBox BKH(sonuc, 3)
End Sub

'@Necdet, Büyük küçük harf ve yazım düzeni.
Function BKH(Sozcuk As String, Optional Tip As Integer = 2) As String

    'Tip    1. Küçük Harf
    '       2. Büyük Harf
    '       3. Yazım Düzeni
    
    Sozcuk = Application.WorksheetFunction.Trim(Sozcuk)
    If Tip = 1 Then
        BKH = Evaluate("=LOWER(" & """" & Sozcuk & """" & ")")
    ElseIf Tip = 2 Then
        BKH = Evaluate("=UPPER(" & """" & Sozcuk & """" & ")")
    Else
        BKH = Application.WorksheetFunction.Proper(Sozcuk)
    End If
    
End Function
 
Katılım
14 Kasım 2017
Mesajlar
618
Excel Vers. ve Dili
2010 Türkçe
Altın Üyelik Bitiş Tarihi
07-01-2024
Hocam farklı bir şirket unvanında bu kod doğru sonuç vermeyecek sanırım.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Hocam farklı bir şirket unvanında bu kod doğru sonuç vermeyecek sanırım.
Yok ordaki amacım, iki tane konkordata var ilkini değiştirmiyor. İkinciyi değiştiriyor anlamında.

Örnek : Demir Kardeşler Demir Çelik İşleme Ltd. Şti. gibi
İkinci Demir Kısaltılabilir yada liste(x,2) ye değer girilmez ise silinebilir
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Firma unvanları A sütununda. Yazdığınız makroyu modüle yapıştırıp, çalıştırıyorum. Hata vermiyor ama işlemi gerçekleştirmiyor. Makro çalıştığında "alıcı" şeklinde bilgi mesajı veriyor.
Benim her hangi bir yere liste yapmama gerek var mı? Bu haliyle çalışması gerekiyor mu. Yardımcı olursanız sevinirim. İyi çalışmalar.
 

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
791
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝365 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Merhaba,

Yapay zeka ile oluşturulmuş KTF şu şekildedir.
*Unvanda yer alan ilk cümle Sabit bırakılır geri kalan cümlelerin Limited yada Anonim Şirkete kadar İlk 3 harfi alır ve şirket kısaltmasını ekler, 40 Karakteri geçerse bildirim verir.

İyi çalışmalar.

=KisaIsim(A1)

Rich (BB code):
Function KisaIsim(metin As String) As String
    Dim kelimeler As Variant
    Dim kisaMetin As String
    Dim i As Integer

    kelimeler = Split(metin, " ")
    kisaMetin = kelimeler(0)

    For i = 1 To UBound(kelimeler)
        If kelimeler(i) = "Şirketi" Then
            kisaMetin = kisaMetin
        ElseIf kelimeler(i) = "Limited" Then
            kisaMetin = kisaMetin & " Ltd.Şti."
        ElseIf kelimeler(i) = "Anonim" Then
            kisaMetin = kisaMetin & " A.Ş."
        Else
            kisaMetin = kisaMetin & " " & Left(kelimeler(i), 3) & "."
        End If
    Next i

    Dim uzunluk As Integer
    uzunluk = Len(kisaMetin)

    If uzunluk > 40 Then
        MsgBox "Kısaltma sonrası uzunluk: " & uzunluk & vbCrLf & " (" & kisaMetin & ")" & vbCrLf & "Kısaltma 40 karakter üstü el ile müdahale gerekebilir."
    End If

    KisaIsim = kisaMetin
End Function
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; Makro işlemlerin pek vakıf değil. Bu yüzden verdiğiniz kodu nasıl kullanacağımı anlayamadım.
KTF için zannedersem farklı bir işlem yapmam gerekiyor. Form sitesinde bilenin anlayacağı şekilde yazılmış, işlemi anlayamadım.
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,323
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Sayın gültekin
kod bölümüne modül ekleyip sayın netzonenin kodlarını yapıştırırsanız olur
iyi çalışmalar
 

Ekli dosyalar

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Şimdi anladım ilgili satıra firma unvanı yazdığımızda makro tetikleyip B hücresine yazıyor. Listeyi çevirecek gibi değerlendirdiğim için hücreye yazıp denemek aklıma gelmedi. Teşekkürler.
 

NADİR YILDIZ

Altın Üye
Katılım
7 Ocak 2006
Mesajlar
1,323
Excel Vers. ve Dili
2016 Türkçe
Altın Üyelik Bitiş Tarihi
09-02-2026
Rica ederim

iyi çalışmalar
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Merhaba;
Firma unvanları A sütununda. Yazdığınız makroyu modüle yapıştırıp, çalıştırıyorum. Hata vermiyor ama işlemi gerçekleştirmiyor. Makro çalıştığında "alıcı" şeklinde bilgi mesajı veriyor.
Benim her hangi bir yere liste yapmama gerek var mı? Bu haliyle çalışması gerekiyor mu. Yardımcı olursanız sevinirim. İyi çalışmalar.
Bu dosyada ayarlar sayfasında tanımlamaları yapın.
Liste sayfasındaki buton ile toplu olarak kısaltma yapabilirsiniz.

C#:
Sub KelimeKisaltma()
    Dim cümle As String
    Dim kelimeler() As String
    Dim sonuc As String
    Dim i As Integer

    sonsatir = Sheets("Ayarlar").Cells(Sheets("Ayarlar").Rows.Count, "A").End(3).Row
    liste = Sheets("Ayarlar").Range("A2:B" & sonsatir)
   'İlk kaç kelime değişmeyecek
    degismeyecekler = 0 + Sheets("Ayarlar").Range("D2").Value
    
    Range("B:B").ClearContents
    Range("B1").Value = "KISA ALICI ADI"
    sonsatir = Cells(Rows.Count, "A").End(3).Row
 For i1 = 2 To sonsatir
    cümle = BKH(Cells(i1, "A").Value, 2)
    kelimeler = Split(cümle, " ")
    sonuc = ""
    For i = 0 To UBound(kelimeler)
      If i > degismeyecekler - 1 Then
        For j = 1 To UBound(liste)
          If kelimeler(i) = liste(j, 1) Then
               sonuc = sonuc & liste(j, 2)
              Exit For
          End If
        Next j
      Else
        sonuc = sonuc & kelimeler(i) & " "
      End If
    Next i
    Cells(i1, "B").Value = sonuc
 Next i1
 MsgBox ("İşlem tamamlandı")
End Sub

'@Necdet, Büyük küçük harf ve yazım düzeni.
Function BKH(Sozcuk As String, Optional Tip As Integer = 2) As String

    'Tip    1. Küçük Harf
    '       2. Büyük Harf
    '       3. Yazım Düzeni
    
    Sozcuk = Application.WorksheetFunction.Trim(Sozcuk)
    If Tip = 1 Then
        BKH = Evaluate("=LOWER(" & """" & Sozcuk & """" & ")")
    ElseIf Tip = 2 Then
        BKH = Evaluate("=UPPER(" & """" & Sozcuk & """" & ")")
    Else
        BKH = Application.WorksheetFunction.Proper(Sozcuk)
    End If
    
End Function
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba;
Bazen anlaşılamayınca anlaşılmıyor. Buradan net olarak ne yapmam gerektiğini anlayamadı.
Benim anladığım; Ayarlar sayfasının A sütununa ismini kısaltmak istediğim cari isimleri kopyalıyorum.
Ayrıca "Liste" Çalışma sayfasının A sütununa kısaltma yapılacak uzun isimleri mesela "Giyim", B sütununa "Giy." ve buna benzer liste oluşturuyorum. Ayarlar çalışma sayfasındaki cari isimleri de listeye göre B sütununa kısalmış olarak listeleniyor.
İki çalışma sayfası ismi olunca bunu anladım. Ama galiba yanlış anladım, işlem sonuç vermiyor.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Merhaba;
Bazen anlaşılamayınca anlaşılmıyor. Buradan net olarak ne yapmam gerektiğini anlayamadı.
Benim anladığım; Ayarlar sayfasının A sütununa ismini kısaltmak istediğim cari isimleri kopyalıyorum.
Ayrıca "Liste" Çalışma sayfasının A sütununa kısaltma yapılacak uzun isimleri mesela "Giyim", B sütununa "Giy." ve buna benzer liste oluşturuyorum. Ayarlar çalışma sayfasındaki cari isimleri de listeye göre B sütununa kısalmış olarak listeleniyor.
İki çalışma sayfası ismi olunca bunu anladım. Ama galiba yanlış anladım, işlem sonuç vermiyor.
Yani bunu nasıl tarif edeyim ki.

Ayarlar sayfasında A sütununa Kısaltılacak kelime. B sütununa Kısa şekli yazılacak.

Liste A sütununa firma ünvanları yazılacak
Butona basılacak ve B sütununda kısaltılmış ünvanlar yazılacak.

Yani Ayarlar sayfasında okadar kelimeden en alttaki cari ismi mi dikkate aldınız :)

O satırı silin. :)
 
Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
Altın Üyelik Bitiş Tarihi
21-07-2024
Merhaba; Bu şekilde yaptığımda sonuç alamıyorum. Nerede eksiğim anlayamadım.
Çalışma sayfalarım.
245649Ayarlar Sayfası.jpg
 

Ekli dosyalar

Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Dosyayı harici bir linkten yüklermisiniz.
 
Katılım
24 Nisan 2005
Mesajlar
3,671
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Resmi tam göremiyorum ama
Ayarlar sayfasında A sütununda kelimeleri büyük harf olarak girin.
Sağında solunda boşluk olmasın
 
Üst