• DİKKAT

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

Kelimeleri Türkçe Yapma

  • Konbuyu başlatan Konbuyu başlatan ÆSir
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Ocak 2018
Mesajlar
225
Excel Vers. ve Dili
2015 TR
Elimde şu an 80bin satırlık bir döküman var. İçinde rotbası, vıtes, sılındır gibi Türkçe karakter içermeyen binlerce kelime var. Hepsini aynı anda Türkçe hale nasıl çevirebilirim?

İkinci sorum her satırın A hücresinde "AYH-A5064" gibi kodlar mevcut. Bunlardan bazıları "BHR-8ML376746-021" şeklinde. İsteğim soldan olmak kaydıysa ilk - ve öncesinin silinmesi komutu.

BHR-8ML376746-021 olmasını istediğim 8ML376746-021

AYH-A5064 olmasını istediğim A5064 gibi.
 
Örnek olarak Excel "vıtes" kelimesinin "vites" olması gerektiğini bilemez. Bunun için bir kelime listeniz varsa iş kolaylaşır. Yoksa benim aklıma ilk olarak Google çeviriyi kullanmak geliyor.
 
Sorunuzun 2. kısmıyla ilgili olarak;

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
        Range("A" & i) = Split(Range("A" & i).Text, "-")(1)
    Next
End Sub

.
 
Örnek olarak Excel "vıtes" kelimesinin "vites" olması gerektiğini bilemez. Bunun için bir kelime listeniz varsa iş kolaylaşır. Yoksa benim aklıma ilk olarak Google çeviriyi kullanmak geliyor.

Öyle bir durumda doğru kelimeleri yazarak tümünü değiştir demek daha mantıklı olacak sanırım.

Sorunuzun 2. kısmıyla ilgili olarak;

Makro içine yerleştirdim fakat değişen bir şey olmadı :/
 
Sorunuzun 2. kısmıyla ilgili olarak;

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
        Range("A" & i) = Split(Range("A" & i).Text, "-")(1)
    Next
End Sub

214814

Hata alıyorum hocam
 
Sorguladığınız veride ilgili satırda "-" işareti olmayabilir. Bunu kontrol ediniz.
 
@Haluk bey in kodu üzerinden aşağıdaki şekilde deneyiniz.

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
       gec = Range("A" & i).Text
       If gec <> "" And InStr(gec, "-") > 0 Then Range("A" & i) = Split(gec, "-")(1)
    Next
End Sub
 
Elimde şu an 80bin satırlık bir döküman var. İçinde rotbası, vıtes, sılındır gibi Türkçe karakter içermeyen binlerce kelime var. Hepsini aynı anda Türkçe hale nasıl çevirebilirim..

Aynı anda çevirmeniz ON >ÖN, CAM > ÇAM, CAMI > CAMİ , SU >ŞU gibi doğru olanları da yanlış çevirmesine sebep olabilir.
Türkçe karakter olmasa da en azından anlaşılıyor. Yanlış çevrimde daha kötü sonuçlar çıkabilir.
Kontrollü bir şekilde yapılması daha iyi sonuç verir diye düşünüyorum.
 
@Haluk bey in kodu üzerinden aşağıdaki şekilde deneyiniz.

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
       gec = Range("A" & i).Text
       If gec <> "" And InStr(gec, "-") > 0 Then Range("A" & i) = Split(gec, "-")(1)
    Next
End Sub
Evet formülünüz çalıştı fakat içinde birden fazla (-) olan satırların sağ ve solunu komple kaldırdı.


GNS-4650-4651-4652 makro sonrası 4650 halini almış.
Onun dışında asıl olması gerekenler ABA-25010161 iken 25010161 olmuş bu harika.
 
Onun dışında asıl olması gerekenler ABA-25010161 iken 25010161 olmuş bu harika.
Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
        gec = Range("A" & i).Text
        If gec <> "" And InStr(gec, "-") > 0 Then
            bol = Split(gec, "-")
            bol(0) = ""
            Range("A" & i) = Mid(Join(bol, "-"), 2)
        End If
    Next
End Sub
veya daha basiti
Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
        gec = Range("A" & i).Text
        bul = InStr(gec, "-")
        If gec <> "" And bul > 0 Then Range("A" & i) = Mid(gec, bul + 1)
    Next
End Sub
 
Evet formülünüz çalıştı fakat içinde birden fazla (-) olan satırların sağ ve solunu komple kaldırdı.


GNS-4650-4651-4652 makro sonrası 4650 halini almış.
Onun dışında asıl olması gerekenler ABA-25010161 iken 25010161 olmuş bu harika.

@veyselemre sorunu çözmüş. Aşağıdaki kodu deneyiniz.

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
       gec = Range("A" & i).Text
       If gec <> "" And InStr(gec, "-") > 0 Then Range("A" & i) = Mid(gec, InStr(gec, "-") + 1, Len(gec))
    Next
End Sub
 
Alternatif:

Kod:
Sub Test()
    Dim noA As Long, i As Long
    noA = Range("A" & Rows.Count).End(xlUp).Row
    For i = 1 To noA
        Range("A" & i) = Replace(Range("A" & i), Split(Range("A" & i).Text, "-")(0) & "-", "")
    Next
End Sub

.
 
@ÆSir :) selam

birinci soruna şu çözüm bulabilir, yukarıda cevap verildi mi görmedim.

Önce tabloyu seç sonra makroyu çalıştır.

---------------

Sub kucukharf()

Dim hucre As Range

For Each hucre In Selection
hucre.Replace What:="İ", Replacement:="i"
hucre.Replace What:="I", Replacement:="ı"
hucre.Value = LCase(hucre.Value)

Next

End Sub
 
Alternatif,

Süre olarak avantaj sağlayacaktır.

C++:
Option Explicit

Sub Stok_Kodu_Duzenle()
    Dim S1 As Worksheet, Son As Long, X As Long
    Dim Bul As Integer, Veri As Variant, Zaman As Double
    
    Zaman = Timer
        
    Set S1 = Sheets("Sheet1")
    
    Son = S1.Cells(S1.Rows.Count, 1).End(3).Row
    Veri = S1.Range("A2:A" & Son).Value2
    
    For X = LBound(Veri) To UBound(Veri)
        Bul = InStr(1, Veri(X, 1), "-")
        If Bul > 0 Then
            Veri(X, 1) = Mid(Veri(X, 1), Bul + 1, Len(Veri(X, 1)) - Bul)
        End If
    Next
    
    With S1.Range("A2").Resize(UBound(Veri, 1))
        .NumberFormat = "@"
        .Value = Veri
    End With
    
    MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
          "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye"
End Sub
 
Geri
Üst