Cari isim kısaltma

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
Ayarlar sayfasında uzun kelime için büyük küçük harf girilebilir özelliği eklendi.
Ayarlar sayfasında uzun kelime için boşluklar otomatik silinecek özelliği eklendi.


C#:
Sub KelimeKisaltma()
    Dim cümle As String
    Dim kelimeler() As String
    Dim sonuc As String
    Dim i As Integer
    Dim kelime As String, listekelime As String
    
    
    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)
        kelime = kelimeler(i)
        listekelime = Replace(liste(j, 1), " ", "")
        listekelime = BKH(listekelime, 2)
          If kelime = listekelime 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
Evet haklısınız, kısalacak kelimeleri büyük harfle yazdığımda makro sonuç üretiyor.
Teşekkürler, iyi çalışmalar.
 

ben28

Altın Üye
Katılım
16 Ekim 2014
Mesajlar
26
Excel Vers. ve Dili
2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
02-05-2025
Merhabalar,

Hocam ben indiremiyorum süreyi geçmişi. Sizden ricam tekrar yükleyebilir misiniz.

Sub KelimeKisaltma() Dim cümle As String Dim kelimeler() As String Dim sonucuc As String Dim i As Integer Dim kelime As String, listekelime As String sonsatir = Sheets("Ayarlar").Cells(Sheets("Ayarlar").Rows. Count, "A").End(3).Row list = Sheets("Ayarlar").Range("A2:B" & sonsatir) 'İlk kaç kelime değişmeyecek değişmeyecekler = 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 > değişmeyecekler - 1 Sonra For j = 1 To UBound(liste) kelime = kelimeler(i) listekelime = Değiştir(liste(j, 1), " ", "") listekelime = BKH(listekelime, 2) If kelime = listekelime Sonra sonuçc = sonuc & list(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ı 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 Sonra BKH = Değerlendir ("=LOWER(" & """" & Sözcük & """" & ")") ElseIf Tip = 2 Then BKH = Evaluate("=UPPER(" & """" & Sözcük & """" & ")") Else BKH = Application.WorksheetFunction.Proper(Sozcuk) End If End Function
[/ALINTI]
 

ben28

Altın Üye
Katılım
16 Ekim 2014
Mesajlar
26
Excel Vers. ve Dili
2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
02-05-2025
Merhaba, Yapmış olduğunuz özet üzerinden giderek birkaç nacizane talebim olacak;
Cari Adını Kısaltıp daha sonrasında 2 hücreye uzunluğunda 35'i geçemeyecek şekilde böle biliriz.
Örnek taslağım ektedir.
Yardımcı olursanız sevinirim.

MUTFAK EŞYALARI HEDİYELİK EŞYA REKLAM İNŞAAT OPTİK TEKSTİL KIRTASİYE TİCARET LİMİTED ŞİRKETİ

248420
 

Ekli dosyalar

ben28

Altın Üye
Katılım
16 Ekim 2014
Mesajlar
26
Excel Vers. ve Dili
2010 TÜRKÇE
Altın Üyelik Bitiş Tarihi
02-05-2025

Erkan Akayay

Altın Üye
Katılım
8 Aralık 2006
Mesajlar
405
Excel Vers. ve Dili
Ofis 365 TR 64 Bit
Altın Üyelik Bitiş Tarihi
21-11-2028
D2 formülü =SOLDAN(C2;MBUL("/";YERİNEKOY(SOLDAN(C2;35);" ";"/";35-UZUNLUK(YERİNEKOY(SOLDAN(C2;35);" ";""))))-1)

E2 formülü = =SAĞDAN(C2;(UZUNLUK(C2)-UZUNLUK(D2)-1))
 
Üst