Word dosyasında bozuk satırları düzeltme

Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Merhaba,
Ekteki belgede satırların herbiri paragraf halinde. Bul/değiştir ile yarım satırları birleştiriyorum. Bu esnada gerçekten paragraf başı olması gerekenler yerler de bozuluyor.
Benim çözümüm: Sadece satırbaşı olan yeri bulmak ve oraya özel bir işaret koyup sonra tüm belgedeki satırları birleştirmek ve sonra özel işaret koyduğum yerleri tekrar paragraf başı yapmak istiyorum.
Bir de mesela girintisi 2 cm olan yeri bul diyemiyorum. Bunu makrosuz ve makrolu olarak ayrı ayrı nasıl yapabiliriz?
 

Ekli dosyalar

Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Bunu denemiştim. Ama gerçekten paragrafbaşı olan yerleri de bozmakta.
Verdiğim ek belgede girintisi 2 cm olan yeri (yani gerçekten paragrafbaşı olan yerleri) bulmayı makrosuz ve makrolu olarak ayrı ayrı yapabilirsem gerekli çözümü kendim de üretebilirim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Necati Bey,
Gerçek paragraf başı olan yerlerde girintinin boyutunun önemi yok. Bu boyut 1'de olabilir, 2'de olabilir, hiç girintisi olmayadabilir. Gerçek paragrafta durum budur.
CTRL+ Aşağı Ok tuşuyla paragraflar arasında geçiş yapabilirsiniz. Bul ekranına ^p yazarak paragrafları bulabilirsiniz.(Paragrafın sonuna götürür. Çünkü paragraf işareti sonda yer alıyor.) Aşağıdaki kod ile de paragraflar arasında döngü kurabilirsiniz.
Kod:
For Each prg In ActiveDocument.Paragraphs
MsgBox prg.Range
Ne
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Necati Bey,
Verdiğim linkteki kodlar üzerinde yapılan ufak düzenlemelerle çok başarılı sonuç alınabiliyor. %98-99 oranında dosyayı düzeltti. Yalnız eklediğiniz dosyayı inceledim. Sanırım metni internetten kopyalamışsınız. İnternetten kopyaladığınız metinleri doğrudan yapıştırırsanız, düzenleme esnasında birçok sıkıntıya girebilirsiniz. Örneğin kenar boşluklarınız "0" olarak ayarlanmış. Metin tam olarak oturmuyor. Vereceğim kodu çalıştırmadan önce şu işlemleri yapmanız gerekli:
1- Metni tamamen seçin ve kes komutuyla metni copyalayın. Ardından Düzen>Özel Yapıştır>Biçimlendirilmemiş Metin seçeneğini seçip yapıştırın.
2- Sayfa Yapısından sayfa ayarlarınızı yapın. Kenar boşluğunu 0'dan kurtarın.
3- Değiştir menüsünü açın ve "Bul" kısmına " ^p" yazın(ilk kısmında 1 boşluk var." "Değitir" kısmını boş bırakın. Ardından "Tümünü Değiştir" butonuna basın.
4- Metni tekrar tamamen seçin. Sağ tıklayın Paragraf menüsünden "İlk Satır" tercihini seçin. Girintisini ayarladıktan sonra onaylayın.
5- Son olarak verdiğim kodu çalıştırın.
Ekteki dosyada bahsettiğim 4 işlem uygulanmıştır. Dosyayı indirin ve 5. eylemi gerçekleştirin.
Kod:
Sub Makro1()
For Each prg In ActiveDocument.Paragraphs
If Left(Right(prg.Range, 2), 1) = "-" Then
prg.Range.Select
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeBackspace: Selection.TypeBackspace
ElseIf Left(Right(prg.Range, 2), 1) <> "." Then
prg.Range.Select
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeBackspace
Selection = " "
End If
Next
MsgBox "İşlem tamamlandı.", vbInformation, "Kodlayan: l e u m r u k"
End Sub
 

Ekli dosyalar

Son düzenleme:
Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Bunları yapmıştım. Sizin de gördüğünüz gibi %2 'lik hatalı kısmın düzeltilmesi amacıyla sorumu sormuştum. Mesela noktayla bitip büyük harfle başlayan ancak paragraf başı olmayan cümleleri de paragraf başı yapmakta. Bazı paragraf başlarını da önceki paragrafın sonuna eklemekte. Neyse sağlık olsun. Yinede çok teşekkür ederim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Necati Bey,
5 nolu mesaj güncellenmiştir. "." ile bitip büyük harfle başalayan metinler eğer paragraf başına geçmişse onu elle düzeltmekten başka çözüm olmaz diye düşünüyorum. Çünkü bilgisayara onun paragraf olmadığını tanıtmak mümkün görünmüyor. Son eklediğim kodu denemenizi öneririm. İşinizi epey kolaylaştıracaktır.

Anlatmak istediğinizi sanırım tam olarak anladım.

Bahsettiğiniz durum metnin html olarak düzenlenmiş olmasından kaynaklı olabilir. Girinti kodunu elde etmeye çalışacağım. Düşünceniz mantıklı ve zekice... Girinti elde edilebilirse bahsettiğiniz sorunun önüne geçilebilir.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Tekrar merhaba,
Girinti boyutunu elde ettim. Örnek olması açısından msgbox'a bağladım. Hangi paragrafı verdiğini anlamanız için altına paragrafın ilk 10 karakterini yazdırdım.
Koddan yola çıkarak isteğinize ulaşabilirsiniz. Takıldığınız bir yer olursa yardımcı olurum.
Girinti miktarı yüksek olan sizin istediğiniz paragrafı veriyor.
Kod:
Sub Makro1()
For Each prg In ActiveDocument.Paragraphs
MsgBox prg.Range.ParagraphFormat.LeftIndent & Chr(10) & Left(prg.Range, 10)
Next
End Sub
 
Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Çok sağolun. Üzerinde çalışıyorum.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Necati Bey,
Bir çalışma yaptım. Dener misiniz? İşlem aşamalarını görmek isterseniz msgbox kısmını etkin hale getirin.
Kod:
Sub Makro1()
For x = ActiveDocument.Paragraphs.Count To 2 Step -1
    If ActiveDocument.Paragraphs(x).Range.ParagraphFormat.LeftIndent <> 56.65 Then
        ActiveDocument.Paragraphs(x).Range.Select
        Selection.MoveLeft Unit:=wdCharacter, Count:=1
       ' MsgBox ActiveDocument.Paragraphs(x).Range.ParagraphFormat.LeftIndent & _
        Chr(10) & Left(Right(ActiveDocument.Paragraphs(x - 1).Range, 2), 1)
        If Left(Right(ActiveDocument.Paragraphs(x - 1).Range, 2), 1) = "-" Then
            Selection.TypeBackspace: Selection.TypeBackspace
        Else
            Selection.TypeBackspace
            Selection = " "
        End If
    End If
Next
Selection.WholeStory
Selection.ParagraphFormat.FirstLineIndent = CentimetersToPoints(1.15)
Selection.MoveLeft Unit:=wdCharacter, Count:=1
MsgBox "İşlem tamamlandı.", vbInformation, "Kodlayan: l e u m r u k"
End Sub
 

Ekli dosyalar

Katılım
20 Şubat 2007
Mesajlar
650
Excel Vers. ve Dili
2007 Excel, Word Tr
Mükemmel... Çok çok teşekkür ederim.
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Mükemmel... Çok çok teşekkür ederim.
Rica ederim. Güzel bir örnek oldu. İhtiyacı olanların rahat bulması için konu başlığını düzenledim.
 
Üst