• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Cümle içinde kelimeleri kelime tabanındaki karşılığına göre değiştirme

Katılım
20 Eylül 2005
Mesajlar
119
Excel Vers. ve Dili
2016 - Türkçe
Bir cümle içinde değişmesini istediğimiz kelimeleri veri tabanındaki kelimeler içinde bulup değiştirebilirmiyiz? İşlerimi çok kolaylaştırıp hata oranını en aza indireceğini düşünüyorum. Yardımcı olursanız sevinirim. Dosya ektedir.
 

Ekli dosyalar

Merhaba.

Aşağıdaki kod'u kullanabilirsiniz. (Basit CTRL+H => BUL-DEĞİŞTİR İŞLEMİ)
Koddaki kullanılacak alan adreslerini gerçek belgenizdeki duruma göre değiştirin ve çalıştırın.
-- alan1 (M7:M8) VERİ sayfasında işlem yapılacak alan,
-- alan2 (N7:N8) ise VERİ sayfasında işlem sonucunun yazılacağı hücre aralığıdır.
.
Kod:
[B]Sub BUL_YAZ()[/B]
[B]alan1 = "[COLOR="Red"]M7:M8[/COLOR]": alan2 = "[COLOR="Blue"]N7:N8[/COLOR]"[/B]
Sheets("VERİ").Range(alan1).Copy
Sheets("VERİ").Range(alan2).PasteSpecial Paste:=xlPasteValues
For sat = 5 To Sheets("KELİME").Cells(Rows.Count, 1).End(3).Row
    ara = Sheets("KELİME").Cells(sat, "B") : yaz = Sheets("KELİME").Cells(sat, "C")
    Sheets("VERİ").Range(alan2).Replace What:=ara, Replacement:=yaz, LookAt:=xlPart
Next
MsgBox "İşlem tamam"
[B]End Sub[/B]
 
Merhaba,
Alternatif olsun.
UYARI: Bulunacak ve değiştirilecek kelimelerin listesi küçük harflerle yazılmalıdır. Türkçe karakterlerin aksi halde aynı şey kodlarla yapılmak zorundadır. İçinde Türkçe karakter bulunan kelimeler metin içinde büyük-küçük harf hatası oluşturur.
Not: Kodlarda dizi oluşturmanın gereksiz kod uzattığı düşüncesiyle değişiklik yaptım.
Kod:
Sub kelimeleri_bul_yenilerini_kullan()
Dim sh As Worksheet, ss As Long, eski As String, yeni As String, i As Long, n As Integer
    For d = 7 To 8
        eskiler = Sheets("VERİ").Cells(d, "M")
    For i = 0 To 3
        eski = Sheets("KELİME").Cells(i + 5, "B").Value
        yeni = Sheets("KELİME").Cells(i + 5, "C").Value
        yeniler = Replace(eskiler, eski, yeni)
        eskiler = yeniler
    Next i
        Sheets("VERİ").Cells(d, "N").Value = yeniler
    Next d
    MsgBox "Tüm kelimeler, yenileri ile değiştirildi.", vbInformation, "antonio"
End Sub
 
Son düzenleme:
Harika eline sağlık. Tam istediğim gibi. Hızır gibi yetiştin hocam. Çok işime yarayacak. Birde şunu sorabilir miyim? yüksek müsaadenle, etkin hücreyi sadece değiştirmek istesem yada sadece değiştirmek istediğim hücrenin içine girip enter yapınca değişse. Bu olabilir mi? Yapabilir misiniz?
 
Geri
Üst