Yanlış kelimeleri bulma

Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Değerli arkadaşlar hazırladığım yaklaşık 4 bin kelimelik bir kelime bankam var bu kelimeler rapor yazarken kullandığım kelimeler bunların dışına çok nadir çıkar benim amacım yazdığım raporun içeriğinde hatalı yada bu listede olmayan bir kelime varsa bu kelime yada kelimeleri bana bildirmesi bu konu ile ilgili ekte bir dosya gönderdim ve daha detaylı bir açıklama yaptım bu konuda bana yardımcı olursanız sevinirim yardımlarınız için şimdiden çok teşekkür ederim
 

Ekli dosyalar

Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Dosya ektedir.

Kontrol butonu ile sayfaya yazılanlar kelime listesine göre kontrol edilir.
hatalı kelimeleri kırmızı yapar.
Kelimeler listesi büyük küçük harf duyarlıdır.

* Hatalı kelimeleri Kelimeler sayfasına liste halinde yazar.
* Kelimeler sayfasında Kelime listesine eklenmesini istediğiniz kelimleri B kolonuna yazarak aynı ekranda buton ile listeye ekleme yapabilirsiniz.

Kod:
Dim liste(100000) As String
Dim listehatali(100000, 2) As String
Dim listesay As Long
Dim satir As Long


Sub menu()
   satir = 1
   Call sifirla
   Call liste_yukle
   Call kontrol_et
   MsgBox ("Kontrol tamamlandı.")
End Sub

Sub kontrol_et()
  ensonsutun = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  ensonsatir = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row

[COLOR=Red]  'Set alan = Range(Cells(1, 1), Cells(ensonsatir, ensonsutun))
  Set alan = Range("C23:J33")[/COLOR]
  
  Set shk = Sheets("Kelimeler")
  shk.Range("C:C").Clear
  shk.Range("C1") = "Tanımsız Kelimeler"
  
  For Each hucre In alan
    kelimeler = Split(hucre.Value)

    For j = LBound(kelimeler) To UBound(kelimeler)
       kelime = kelimeler(j)
       If kelime = "" Then GoTo atla
       buldu = False
       For i = 1 To listesay
         listekel = liste(i)
         If kelime = listekel Then
         
            buldu = True
            Exit For
         End If
       Next i
       
       hatadanbuldu = False
       If Not buldu Then
       
           For i1 = 2 To listesay
             dogrukelime = " " & listehatali(i1, 1) & " "
             listekel = listehatali(i1, 2)
             
             If InStr(listekel, "," & kelime & ",") > 0 And Replace(listekel, ",", "") <> "" Then
                 hatadanbuldu = True
                 hucre.Value = Replace(" " & hucre.Value, " " & kelime & " ", dogrukelime)
                 kelime = dogrukelime
                Exit For
             End If
           Next i1
              
           satir = satir + 1
           shk.Cells(satir, "C").Value = kelime
           Set Aln = hucre
           deg = kelime
           For Each hcr In Aln
             renk = InStr(renk + 1, hcr.Text, deg)
             Do
               If renk > 0 Then
                  hcr.Characters(Start:=renk, Length:=Len(deg)).Font.ColorIndex = 3
               End If
               renk = InStr(renk + 1, hcr.Text, deg)
             Loop While renk > 0
           Next hcr
       End If
       
       If buldu Then
           Set Aln = hucre
           deg = kelime
           For Each hcr In Aln
             renk = InStr(renk + 1, hcr.Text, deg)
             Do
               If renk > 0 Then
                  hcr.Characters(Start:=renk, Length:=Len(deg)).Font.Color = -10477568
               End If
               renk = InStr(renk + 1, hcr.Text, deg)
             Loop While renk > 0
           Next hcr
       
       End If

       If hatadanbuldu Then
           Set Aln = hucre
           deg = kelime
           For Each hcr In Aln
             renk = InStr(renk + 1, hcr.Text, deg)
             Do
               If renk > 0 Then
                  hcr.Characters(Start:=renk, Length:=Len(deg)).Font.Color = 15773696
               End If
               renk = InStr(renk + 1, hcr.Text, deg)
             Loop While renk > 0
           Next hcr
       
       End If

atla:
    Next j
 Next
 
End Sub

Sub sifirla()
  For i = 1 To 100000
     liste(i) = ""
     listehatali(i, 1) = ""
     listehatali(i, 2) = ""
  Next i
End Sub

Sub liste_yukle()
   Set shk = Sheets("Kelimeler")
   sonsatir = shk.Cells(Rows.Count, "A").End(3).Row
   say = 0
   For i = 1 To sonsatir
     listesay = i
     liste(i) = shk.Cells(i, "A").Value
     listehatali(i, 1) = shk.Cells(i, "A").Value
     listehatali(i, 2) = "," & shk.Cells(i, "B").Value & ","
   Next i
End Sub

Sub tanimsizlari_ekle()
    sonsatira = Cells(Rows.Count, "A").End(3).Row + 1
    sonsatirb = Cells(Rows.Count, "C").End(3).Row
    Range("C2:C" & sonsatirb).Select
    Selection.Cut
    Range("A" & sonsatira).Select
    ActiveSheet.Paste
End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri cevabınız ilgi ve alakanız için çok teşekkür ederim. kodlar çok güzel benim istediğim ve yapmaya çalıştığımdan daha güzel olmuş fakat bir konu var siz "Hatalı kelime, kelimeler listesine eklenir ve tekrar hücreye girip enter yapılır ise kontrol yeniden sağlanır." demişsiniz yanlız hatalı kelimeler kelime bankasına eklenmeyecek sadece renk değişikliği ile bana bilgi vermesi yeterli zaten verilen aralıkta işlem yapıldığında listeye herhangi bir ekleme yapılmıyor bu hata benden kaynaklanıyor olabilirmi
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri cevabınız ilgi ve alakanız için çok teşekkür ederim. kodlar çok güzel benim istediğim ve yapmaya çalıştığımdan daha güzel olmuş fakat bir konu var siz "Hatalı kelime, kelimeler listesine eklenir ve tekrar hücreye girip enter yapılır ise kontrol yeniden sağlanır." demişsiniz yanlız hatalı kelimeler kelime bankasına eklenmeyecek sadece renk değişikliği ile bana bilgi vermesi yeterli zaten verilen aralıkta işlem yapıldığında listeye herhangi bir ekleme yapılmıyor bu hata benden kaynaklanıyor olabilirmi
Hatalı kelime eklenir derken, doğru yazılmış ancak programın tanımadığı , hatalı olarak işaretlediği kelimeyi demek istemiştim. Yoksa kelimeyi hatalı hali ile kelimelere ekleyin demedim :)
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri ben tamamen yanlış anlamışım sizin anlatmaya çalıştığınız şey listede olmayan fakat ifadesi doğdu bir kelime yazıldığında kelime listesine ekleneceği yönünde bir şey sanırım
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri ben tamamen yanlış anlamışım sizin anlatmaya çalıştığınız şey listede olmayan fakat ifadesi doğdu bir kelime yazıldığında kelime listesine ekleneceği yönünde bir şey sanırım
Tam o şekilde.
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri çok teşekkür ederim bu haliyle bile benim işimi görüyor ben bu kelime listesi dışında neredeyse hiç bir kelime kullanmıyorum ancak yeni bir doktor başlayıp değişik ifade tarzında raporlar yazdırırsa o zaman değişik ifadeler oluyor ben bunları düzenleyip manuel olarakta listeye ekleyebilirim ama ben mesela verilen aralığa Mehmet yazdığımda yada Ahmet, Hasan, Akşam, Sabah gibi yazılışı doğru ancak kelime listesinde olmayan ifadeler yazdığımda listeye eklemiyor yukarıdada bahsettiğim gibi bu şimdilik bir sorun değil ama bundan daha önemlisi hücre içinde metni yazıp enter tuşuna bastığımda program "Yanıt vermiyor" hatası ile kararsız ve işlem yapılamaz hale geliyor ve programı kapat uyarısı ile mecburen kapatmak zorunda kalıyorum
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
.. Mehmet yazdığımda yada Ahmet, Hasan, Akşam, Sabah gibi yazılışı doğru ancak kelime listesinde olmayan ifadeler yazdığımda listeye eklemiyor..
Programda Mehmet ve Mhmet kayıtlı değil ise bunları hatalı kabul eder.
Hatalı kelimelerden hangisinin hatasız olduğunu bilmediği için de tanımadığı kelimeleri listesine eklemez. Sizin eklemeniz gerekir. Her tanımadığı kelimeyi listeye ekletebiliriz ancak bu durumda da program hatalı kelimeleri de doğru kabul edecektir.

Yanıt vermeme sorunu ile karşılaşmadım. Ancak bunun sebebi ard arda enterler olabilir. Program her enterdan sonra çalışması yerine bir butona bağlanıp kontrol et diyerek kontrol sağlanabilir. Bu şeklide donmaların önüne geçilebilir.
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Kod ve dosya güncellendi.
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri alakanız için teşekkür ederim önerilerinizi yeri getireceğim sonucu size bildireceğim. Bu gün sizi çok yordum ama bir sorum daha olacak. Şimdi yanlış yazılmış kelimeyi tespit ettik diyelim kelimenin aslı "Anal" ama biz "Anl" yazdık yanlış yazılmış bu "Anl" kelimesini listede bulunan "Anal" kelimesi ile değiştirilebilirmi. Birde mesela "Anal", "Ancak", "Anda" vs gibi kelimelerin türevleri yok herhangi bir ek almamış yalın hali ile listede bulunuyorlar ama bunların dışında birde türevi olan ek almış kelimeler mevcut "ülser, ülsere, ülseri, ülserin, ülserden" gibi yada sadece ülser değilde mesela "kanal, kanala, kanalda, kanaldan" gibi türevi olan kelimelerde ise hangisi ile değiştireceğini bilemeyeceği için seçmeli bir değiştirme sistemi yapılabilirmi seçme konusunda tercihi size bırakıyorum nasıl uygun görürseniz biraz sıkıntılı gibi duruyor olabilir ama excelde yapılabileceklerin neredeyse sınırı yok ben bununda yapılabileceğini düşündüm ve sizden yardım talep ediyorum bu konuda bana yardımcı olabilirseniz çok memnun olurum teşekkürler
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Son mesajınızı görmemişim sayın asri hemen inceliyorum teşekkür ederim
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri alakanız için teşekkür ederim önerilerinizi yeri getireceğim sonucu size bildireceğim. Bu gün sizi çok yordum ama bir sorum daha olacak. Şimdi yanlış yazılmış kelimeyi tespit ettik diyelim kelimenin aslı "Anal" ama biz "Anl" yazdık yanlış yazılmış bu "Anl" kelimesini listede bulunan "Anal" kelimesi ile değiştirilebilirmi. Birde mesela "Anal", "Ancak", "Anda" vs gibi kelimelerin türevleri yok herhangi bir ek almamış yalın hali ile listede bulunuyorlar ama bunların dışında birde türevi olan ek almış kelimeler mevcut "ülser, ülsere, ülseri, ülserin, ülserden" gibi yada sadece ülser değilde mesela "kanal, kanala, kanalda, kanaldan" gibi türevi olan kelimelerde ise hangisi ile değiştireceğini bilemeyeceği için seçmeli bir değiştirme sistemi yapılabilirmi seçme konusunda tercihi size bırakıyorum nasıl uygun görürseniz biraz sıkıntılı gibi duruyor olabilir ama excelde yapılabileceklerin neredeyse sınırı yok ben bununda yapılabileceğini düşündüm ve sizden yardım talep ediyorum bu konuda bana yardımcı olabilirseniz çok memnun olurum teşekkürler
Bu işin sonu iyi değil, Excel i word e rakip çıkarmaya niyetiniz var gibi :)
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Rakibi olmak iyidir insana tecrübe katar çalıştığım kurumda benim pozisyonumda olmak isteyen birkaç rakibim vardı onların önünde olmak için çaba gösterdim daha azimliydim tempoya dayanamadılar rapor hazırlama ve sunum yapma işinde hiçte başarı sağlayamadılar ben ise excelin ve tabi olarak sizlerinde desteğini arkama alarak çalıştım hepsi gitti ben kaldım. bu arada güncel dosyayı ve kodları denedim çok güzel olmuş ancak yine hata veriyor biraz çabaladım ve hatanın nedenini buldum yazılan metin arasında yada kelimenin yanında birden fazla boşluk varsa hata veriyor düzeltilebilirmi
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri güncel dosyayı ve kodları denedim çok güzel olmuş ancak yine hata veriyor biraz çabaladım ve hatanın nedenini buldum yazılan metin arasında yada kelimenin yanında birden fazla boşluk varsa hata veriyor düzeltilebilirmi
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri güncel dosyayı ve kodları denedim çok güzel olmuş ancak yine hata veriyor biraz çabaladım ve hatanın nedenini buldum yazılan metin arasında yada kelimenin yanında birden fazla boşluk varsa hata veriyor düzeltilebilirmi
Kod ve dosya güncellendi.

Kontrol ediniz.
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri kod ve dosya çok güzel olmuş sorunsuz çalışıyor artık eski hataları almıyorum elinize sağlık teşekkür ederim
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri kod ve dosya çok güzel olmuş sorunsuz çalışıyor artık eski hataları almıyorum elinize sağlık teşekkür ederim
Diğer talep ettiğiniz işlemler biraz yorucu, uygun zaman olması lazım.
Bu yüzden olumlu dönüş yapamadım.

Öneri olarak; ekli olanları tüm ihtimallerini listeye ekleyin. Sonuç olarak belli bir kelime grubu kullanıldığı için çok büyük problem olmaz.
Hata düzeltme ise ayrı bir konu.
 
Son düzenleme:
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri çok teşekkür ederim hata düzeltme konusunda ayrı bir konu başlığı açıp çözüm aramaya devam edebilirmiyim yoksa bu başlık altında müsait olan bir arkadaşı bekleyeyimmi
 
Katılım
24 Nisan 2005
Mesajlar
3,680
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Sayın asri çok teşekkür ederim hata düzeltme konusunda ayrı bir konu başlığı açıp çözüm aramaya devam edebilirmiyim yoksa bu başlık altında müsait olan bir arkadaşı bekleyeyimmi
Hata düzeltme ile ilgili güncelleme yapıldı.
Kelimeler sayfasında doğru kelimenin yanında B kolonuna hatalı yazımları virgül ile ayırarak yazınız.

Program düzeltilen kelimeleri mavi renk yapacaktır.
İlk kelime hariç, diğerlerinin başında ve sonunda bir boşluk olmalıdır. nokta virgül tire gibi işaretler var ise program bulmayacaktır.

Kontrol ediniz.

Olmamış ise yeni bir konu açmak daha iyi olur.
 
Katılım
28 Eylül 2009
Mesajlar
245
Excel Vers. ve Dili
office 2003 kullanıyorum
Altın Üyelik Bitiş Tarihi
23/10/2018
Sayın asri öneriniz üzerine birkaç deneme yaptım kodlar çalışıyor düzeltmeler yerli yerinde ama kodların düzenli çalışabilmesi için olası yanlış yazılmış kelimelerin hepsinin B sütununda listelenmiş olması gerekiyor ve buda belki onbinlerce permütasyon ortaya çıkarıyor bunu yapmak benim için neredeyse imkansız ayrı bir başlıkta yardım talep etsem size saygısızlık yapmış olmam değilmi. Birde Yanlış kelime tarama ve düzeltme olayı sadece C23 ve J33 aralığında gerçekleşebilirmi acaba daha yukarı kısımlarda hastanın genel bilgilerini içerdiği için çok değişken oluyor ben biraz uğraştım ama yapamadım bunu ilk başta size söylediğim içinde ayrıca özür dilerim teşekkür ederim
 
Üst