• DİKKAT

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

Karakteri Harfe çevirme

Katılım
4 Mart 2010
Mesajlar
292
Excel Vers. ve Dili
2010 TÜRKÇE
Bir programdan rapor almak istediğimde,bazı harfleri bizim alfabemizde
kullanmadığımız harfler olarak gösteriyor.Bunları bizim anlayacağımız
şekilde düzenlemek istiyorum.

Tbloyu ekledim Teşekkür ederim...
 

Ekli dosyalar

Bu değişim hangi sütunlarda olacak?
 
Aşağıdaki kodları bir modüle kopyalayıp deneyiniz. Deneme amaçlı önce küçük bir örnek yapmanızı tavsiye ederim.

Kod:
Sub değiştir()
sonsatır = Cells(Rows.Count, "A").End(3).Row
For i = 4 To sonsatır
sonsütun = Cells(i, Columns.Count).End(xlToLeft).Column
    For j = 1 To sonsütun
        For harf = 1 To Len(Cells(i, j))
            If WorksheetFunction.CountIf(Sheets("Sayfa2").Range("A2:A5"), Mid(Cells(i, j), harf, 1)) > 0 Then
                yeniharf = WorksheetFunction.VLookup(Mid(Cells(i, j), harf, 1), Sheets("Sayfa2").Range("A2:B5"), 2, 0)
                Cells(i, j) = Replace(Cells(i, j), Mid(Cells(i, j), harf, 1), yeniharf)
            End If
                Cells(i, "C") = harf
        Next
    Next
Next
End Sub
 
Karakter-harf

Bazı harfleri değiştirmedi.bazı hücrelere rakam geldi.

Birde 1.sekmeye bakabilirseniz tabloyu daha iyi anlayabilirsiniz.
Dosya ektedir...
 

Ekli dosyalar

Ben denediğimde düzgün çalışıyor. Siz sanıyorum sayfa2'de makroyu denemişsiniz. Kodlara dikkat ederseniz ilk şart 4. satırdan itibaren başlıyor. Sayfa2'deki ilk iki karakter ise 2. ve 3. satırlarda. dolayısıyla makro bunları zaten dikkate almıyor. Sayfa1'deki verileriniz 4. satırdan itibaren başladığı için ben

For i = 4 to sonsatır

şeklinde düzenlemiştim. 1, 2 ya da 3. satır için kodu değiştirmeniz gerekir. Örneğin 1. satırdan itibaren çalışması için aşağıdaki gibi olmalıdır:

Kod:
Sub değiştir()
sonsatır = Cells(Rows.Count, "A").End(3).Row
For i = 1 To sonsatır
sonsütun = Cells(i, Columns.Count).End(xlToLeft).Column
    For j = 1 To sonsütun
        For harf = 1 To Len(Cells(i, j))
            If WorksheetFunction.CountIf(Sheets("Sayfa2").Range("A2:A5"), Mid(Cells(i, j), harf, 1)) > 0 Then
                yeniharf = WorksheetFunction.VLookup(Mid(Cells(i, j), harf, 1), Sheets("Sayfa2").Range("A2:B5"), 2, 0)
                Cells(i, j) = Replace(Cells(i, j), Mid(Cells(i, j), harf, 1), yeniharf)
            End If
        Next
    Next
Next
End Sub

Bu arada ilk kodda End if satırından sonra kontrol amaçlı eklediğim aşağıdaki satır vardı, onu sildim:

Kod:
   Cells(i, "C") = harf
 
Nerede hata yapıyorum?

Ben beceremedim.yaptığım dosyayı ekliyorum.
Acaba nerede hata yapıyorum?
 

Ekli dosyalar

  • XXXX.rar
    XXXX.rar
    260.8 KB · Görüntüleme: 10
Geri
Üst