Skip to main content

AccessTr.neT


Excel Hücre İçinde Geçen Karakter Sayısını Kısıtlamak.

Oğuz Türkyılmaz
Oğuz Türkyılmaz
12
809

Excel Hücre İçinde Geçen Karakter Sayısını Kısıtlamak.

#7
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.
Access Çekirgesi 
[Resim: img-cray.gif]


Son Düzenleme: 06/02/2021, 23:33, Düzenleyen: Oğuz Türkyılmaz.
Cevapla
#8
ö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
Cevapla
#9
Sn.Berduş Resimdeki hatayı veriyor.
[Resim: do.php?img=10696]
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#10
ç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
Cevapla
#11
(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.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla
#12
Sn.Berduş çok teşekkür ederim. Halloldu.
Access Çekirgesi 
[Resim: img-cray.gif]


Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task