WORD DE INDEX OLUSTURABILIYORMUYUZ? [Archive] - Excel Forum

PDA

Tüm Versiyonu Göster : WORD DE INDEX OLUSTURABILIYORMUYUZ?


emrecolak09
21-09-2005, 16:01
Word'de index oluþturma konusunda yardýma ihtiyacým var

wordde yazýlý olan býr metnýn sonunda o metýn ýcerýsýndeký sozcuklerden kac adet oldugunu yazdýrabýlýyormuyuz?

yardýmlarýnýzý beklýyorum

Emre ÇOLAK

Necdet Yeþertener
21-09-2005, 16:34
Sayýn emrecolak09,
Belli bir bölgeyi seçiniz
1. Tools (araçlar)
2. Word Count (kelime say) size istetistiði verir

Bildiðim budur. Ýyi Çalýþmalar

emrecolak09
21-09-2005, 16:37
Sayýn Necdet Bey

Ýlginiz için tesekkurler

Ancak Beným Sorunum bu degýl. Ben tum sozcuklerýn sayýsýný degýl
her sozcukten kac adet oldugunu hesaplayabýlýrmý onu merak edýyorum

Iyý calýsmalar

Emre ÇOLAK

excile
02-10-2005, 11:55
Selam

Aþaðýdaki örnek gibi birþey mi?.Ekli dosya "kelime sayar.doc"

excile
02-10-2005, 13:02
Tabloya demiþsiniz!
Ekli dosya "kelime sayar tabloya.doc"

Haluk
03-10-2005, 21:14
Alternatif olarak, kendi imalatýmýz olan ekli dosyadaki kodu da deneyebilirsiniz ...

(Sanýrým teknik bir problem var, "Sitenin ataç kapasitesi dolmuþtur" þeklinde bir mesaj aldým...)

Haluk
03-10-2005, 21:22
Tekrar merhaba;

Ataçý ekleyemedim, bari kodu yapýþtýrayým dedim ...

'**********************************************
'* Dokumandaki kelimeleri sayan kod. *
'* *
'* Burasi Excel Vadisi ... *
'* *
'* Haluk ® *
'* 03/10/2005 *
'* *
'**********************************************

Sub Test()
Dim NoWords As Long, i As Long, k As Long
Dim MyColl As New Collection
Dim Msg As String, MsgHeader As String, x As String, StrVal As String
Dim MyRng As Range

ActiveWindow.ActivePane.View.ShowAll = False
NoWords = ActiveDocument.Words.Count

For i = 1 To NoWords
x = Trim(ActiveDocument.Words(i))
Set RegExp = CreateObject("VBscript.RegExp")
RegExp.Global = True
RegExp.Pattern = "[,.!%&~`:+/*¹-]"
StrVal = RegExp.Replace(x, "")
MyColl.Add (StrVal)
Next

On Error Resume Next
For i = 1 To NoWords
For j = i + 1 To NoWords - 1
If MyColl(i) = MyColl(j) Or MyColl(j) = "" Then
MyColl.Remove j
End If
Next
Next
On Error GoTo 0

For i = 1 To MyColl.Count
k = 0
For j = 1 To NoWords
If Trim(ActiveDocument.Words(j)) = MyColl(i) Then
k = k + 1
End If
If Asc(MyColl(i)) = 13 Then GoTo ResumeFor:
Next
Msg = Msg & vbNewLine & MyColl(i) & " »» " & k & " adet"
ResumeFor:
Next

MsgHeader = vbCrLf & vbCrLf & "Rapor :"
StartDoc = ActiveDocument.Content.End - 1
EndDoc = ActiveDocument.Content.End - 1
Set MyRng = ActiveDocument.Range(Start:=StartDoc, End:=EndDoc)
MyRng.Text = MsgHeader & vbCrLf
MyRng.ParagraphFormat.Alignment = wdAlignParagraphCenter
MyRng.Bold = True
MyRng.Font.Color = wdColorBlue
MyRng.Underline = wdUnderlineThick

StartDoc = ActiveDocument.Content.End - 1
EndDoc = ActiveDocument.Content.End - 1
Set MyRng = ActiveDocument.Range(Start:=StartDoc, End:=EndDoc)
MyRng.Text = Msg
MyRng.ParagraphFormat.Alignment = wdAlignParagraphLeft
MyRng.Bold = True
MyRng.Font.Color = wdColorBlack
MyRng.Text = Msg

Set MyRng = Nothing
Set RegExp = Nothing
End Sub

Haluk
03-10-2005, 23:00
Tekrar merhaba;

Sanýrým sitedeki ataç ekleme problemi giderildi. Bu durumda, yukarýdaki kodun yer aldýðý dosyayý eklemek istedim .

Ýyi akþamlar ...

teknik
04-10-2005, 07:11
Peki kelimeleri nasýl saydýracaðýz? Düzendeki bu komutuyla mý? veya hangi yöntemle

Haluk
04-10-2005, 09:00
Peki kelimeleri nasýl saydýracaðýz? Düzendeki bu komutuyla mý? veya hangi yöntemle

Sub Test2()
WordCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticWords) _
& " adet kelime var"
ParagCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticParagraphs) _
& " adet kelime var"
LineCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticLines) _
& " adet satýr var"
CharacterCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticCharacters) _
& " adet karakter var"
PagesCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticPages) _
& " adet sayfa var"
Msg = WordCount & vbCrLf & ParagCount & vbCrLf & LineCount & vbCrLf _
& CharacterCount & vbCrLf & PagesCount
MsgBox Msg, vbInformation, "Rapor..."
End Sub

teknik
04-10-2005, 09:25
Haluk Bey teþekkürler.
Peki Bu kodlarý veya dosyayý týpký excel deki gibi bir eklenti olarak kaydedip bütün word dosyalarýnda tek makro ile kullanabilirmiyiz?

Haluk
04-10-2005, 09:29
.....
Peki Bu kodlarý veya dosyayý týpký excel deki gibi bir eklenti olarak kaydedip bütün word dosyalarýnda tek makro ile kullanabilirmiyiz?

Kodlarý, Normal modulünün içinde oluþturacaðýnýz modüllere yerleþtirirseniz bu iþ olur.

teknik
04-10-2005, 13:55
Haluk Bey Teþekkürler gayet iyi çalýþýyor. Eðre birde klavyeden ksayol tuþuyla direk makro çalýþsa çok daha güzel olur. örneðin alt+m ile direk makro çalýþsa olur mu?

Haluk
04-10-2005, 14:09
Merhaba;

Þöyle bir þey olabilir ...

Word'de VBE kýsmýnda Normal içinde bir module aþaðýdakileri yerleþtirin ve kaydedip, kapatýn.

Daha sonra, önceden kaydedilmiþ herhangibir Word belgesi açýn ve klavyedeki F3 tuþuna bastýðýnýzda kodlardaki Test2 isimli prosedur çalýþacaktýr.

Sub AutoExec()
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF3), _
KeyCategory:=wdKeyCategoryMacro, Command:="Test2"
End Sub
'
Sub Test2()
WordCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticWords) _
& " adet kelime var"
ParagCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticParagraphs) _
& " adet kelime var"
LineCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticLines) _
& " adet satýr var"
CharacterCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticCharacters) _
& " adet karakter var"
PagesCount = ActiveDocument.ComputeStatistics(Statistic:=wdStat isticPages) _
& " adet sayfa var"
Msg = WordCount & vbCrLf & ParagCount & vbCrLf & LineCount & vbCrLf _
& CharacterCount & vbCrLf & PagesCount
MsgBox Msg, vbInformation, "Rapor..."
End Sub

teknik
04-10-2005, 14:32
Haluk Bey gerçekten bu kadar ilgi gösterdiðiniz ve yardýmcý olduðunuz için teþekkür ederim. bütün word dosyalarýnda çalýþýyor üstelik açýlýþta makrolarý etkinleþtir mesajý da çýkmadan.

Ýyi Çalýþmalar...

teknik
04-10-2005, 14:35
Bir de gözden kaçan bir dalgýnlýk noktasý olsa gerek yukarýdaki ikinci kod satýrýndaki "adet kelime var" "adet paragraf var" olmasý gerekiyor herhalde çünkü iki defa farklý sayýlarda kelime var diyor.

Haluk
04-10-2005, 14:47
....... bütün word dosyalarýnda çalýþýyor üstelik açýlýþta makrolarý etkinleþtir mesajý da çýkmadan.
.......

Evet, bu yöntemle yani Normal.dot modulüne yazýlan kodlar dosya açýlýþýnda "Makrolarý Etkinleþtir / Etkinleþtirme" uyarýsý vermez. Çünkü bu iþlem, MS Excel' deki "Eklenti dosyasý" karþýlýðýdýr. MS Excel'de de bildiðiniz gibi, eklenti dosyalarý açýlýrken herhangibir makro uyarý mesajý vermez.

Ýyi çalýþmalar dilerim ...

Not: Haklýsýnýz, 2nci satýrda "..... paragraf var" þeklinde olucak.


Özel Arama