AccessTr.neT

Tam Versiyon: Excel Hücre İçinde Geçen Karakter Sayısını Kısıtlamak.
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3
Dediğiniz gibi durumlar oluşuyor zaten ama artık o durumda ilk kelimenin en çok kullanılan türkçe karşılık olduğu düşünülecek başka yolu yok sanırm yada böyle durumlarda virgülü değil son boşluk karakteri baz alınmalı sanırım. Sadece şunu kafamda çözemedim diyelim ki Türkçe karşılık olarak 3- 4 kelime var ve bunlar virgüllerle birbirinden ayrılmış ama karakterlerin toplamı da 50 den az Böyle bir durumda da işlem yapmaması gerekiyor. Bu nasıl sağlanabilir bilemiyorum.
öncelikle çalışmanıza deneme amaçlı olarak yeni bir sayfa ekleyin ADI: Lugat_2  olsun
sonra çalışmanıza yeni bir modül ekleyip oraya aşağıdaki kodu ekleyin
VBA sayfasında fonksiyonun ilk satırına tıkladıktan sonra F5 tuşuna basın
dilerim işinize yarar
Not: bu işlemin tek seferlik olacağı varsayıldığından dosyada uzantı değişikliğine gidilmedi
bu haliyle XLSX uzantılı olarak dosyanızı kaydetmeye çalışırsanız fonksiyon kaydedilmez
Sub Kisalt()
Dim DiziLugat() As Variant
Dim DiziLugat2() As Variant
Dim SyfKynk As Worksheet
Dim SyfHdf As Worksheet
Dim SonStr As Long
On Error Resume Next

Set SyfKynk = ThisWorkbook.Worksheets("lugat")
Set SyfHdf = ThisWorkbook.Worksheets("Lugat_2")
SonStr = SyfKynk.Cells(Rows.Count, 1).End(xlUp).Row

DiziLugat = SyfKynk.Range("A1:B" & SonStr)

ReDim DiziLugat2(LBound(DiziLugat) To UBound(DiziLugat), 1 To 2)
For x = LBound(DiziLugat) To UBound(DiziLugat)
    VrgulKes = InStrRev(Left(DiziLugat(x, 2), 50), ",") - 1
    VrgulKes = IIf(VrgulKes < 1, 50, VrgulKes)
    DiziLugat2(x, 1) = DiziLugat(x, 1)
    DiziLugat2(x, 2) = Left(DiziLugat(x, 2), VrgulKes)
 
Next x

SyfHdf.Range("A1").Resize(UBound(DiziLugat2, 1), UBound(DiziLugat2, 2)) = DiziLugat2
MsgBox "bitti"
End Sub
[Resim: do.php?img=10695]https://resim.accesstr.net/do.php?img=10695
Sn.Berduş Resimdeki hatayı veriyor.
[Resim: do.php?img=10696]
çalışmanızda option Explicit kullandığınız için her değişkeni tanımlamanız gerekiyor
burada x tanımlanmadığından hata veriyor ya option Explicit satırını silmelisiniz yada
Dim satırlarının altına Dim x as long benzeri yeni bir satır eklemelisiniz

aynı şey vrgulkes içinde geçerli

Dim x as long
dim VrgulKes as byte

ama bence kod tek seferlik çalışacağından en baştaki option Explicit satırına gerek yok
(07/02/2021, 14:09)berduş yazdı: [ -> ]çalışmanızda option Explicit kullandığınız için her değişkeni tanımlamanız gerekiyor
burada x tanımlanmadığından hata veriyor ya  option Explicit satırını silmelisiniz yada
Dim satırlarının altına Dim x as long benzeri yeni bir satır eklemelisiniz

aynı şey vrgulkes içinde geçerli

Dim x as long
dim VrgulKes as byte

ama bence kod tek seferlik çalışacağından en baştaki option Explicit satırına gerek yok

Sn.Berduş Office sürümümle ilgili olduğunu düşündüğüm bir hata var Sql SERVER Management Studıo ya Excel dosyamı import ederken hata aldığımdan Office sürümümü komple kaldırıp 2019 yükleyeceğim. Bu işlemden sonra söylediklerinizi uygulayacağım. Ben Dim x As Short olarak bir değişken tanımlayıp denemiştim ama orda da başka bir hata vermişti. En kısa zamanda deneyip geri dönüş yapacağım. Çok teşekkürler.
Sn.Berduş çok teşekkür ederim. Halloldu.
Sayfalar: 1 2 3