• DİKKAT

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

Detaylı Arama Yapmak

Katılım
19 Mart 2016
Mesajlar
37
Excel Vers. ve Dili
2010
üstadlarım elimde 8000 adet word sosyası var. 5800 adet excel dosyası var. bu dosyaların her birerinin içinde binlerce metin, kelime, cümle var.
beni istediğim elimdeki kullandığım 100 kelimeden herhangibirini veya fazlasını içeriyorsa listeleyip versin
bunu yapabilecek programa ihtiyacım var.


çözümler
(asri üstadımdan alıntı)

asri üstadım
konuyla çok ilgilendi sağolsun
Excel dosyasının aşağıdaki linkten indirebilirsiniz.
Aranacak kelimeleri A sütununa yazın.
Dosyaların bulunduğu klasörü E2 ye C:\deneme şeklinde yazın.
"Aramaya Başla" butonuna tıklayın.

http://asriakdeniz.com/word-docx-dos...da-coklu-arama


buda program türü
Download Office•Words Search and Replace
üstelik türkçe
http://www.office-words.com/download.html
 
Son düzenleme:
Alıntı kodlarda yaptığım düzenlemeler ile WORD için aşağıdaki şekilde arama yapabilirsiniz.

Bu satır da programın hangi klasördeki dosyalara bakacağınızı belirtiyorsunuz.
Program bu klasör ve altındaki klasörleri tarayacaktır.

Call FileSearchByHavrda(ListOfFilenamesWithParh, "c:\deneme\", "*.docx", True)


A sütünuna sıra ile aranacak kelimeleri yazınız.
merhaba
nasılsın
1002
1004
1006
1008


Aşağıdaki şekilde bir sonuç dönecektir.

merhaba Var c:\deneme\Merhaba hepsi.docx
nasılsın Var c:\deneme\Merhaba hepsi.docx
1002 Var c:\deneme\Merhaba hepsi.docx
1004 Var c:\deneme\Merhaba hepsi.docx
1006 Var c:\deneme\Merhaba hepsi.docx
1008 Var c:\deneme\Merhaba hepsi.docx
merhaba Var c:\deneme\Merhabam 1002 siz.docx
nasılsın Var c:\deneme\Merhabam 1002 siz.docx
1002 Yok c:\deneme\Merhabam 1002 siz.docx
1004 Var c:\deneme\Merhabam 1002 siz.docx
1006 Var c:\deneme\Merhabam 1002 siz.docx
1008 Var c:\deneme\Merhabam 1002 siz.docx
merhaba Var c:\deneme\Merhabam 1004 suz.docx
nasılsın Var c:\deneme\Merhabam 1004 suz.docx
1002 Var c:\deneme\Merhabam 1004 suz.docx
1004 Yok c:\deneme\Merhabam 1004 suz.docx
1006 Var c:\deneme\Merhabam 1004 suz.docx
1008 Var c:\deneme\Merhabam 1004 suz.docx


Kod:
Dim dosyaadi As String
Dim ensonsatir, ensonsutun, satir As Long

Sub menu()
    satir = 0
    Call SrchForFiles
End Sub

Sub sonsatirne()
  If WorksheetFunction.CountA(Cells) > 0 Then
     ensonsatir = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
     ensonsutun = Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
  Else
     ensonsatir = 65000
     ensonsutun = 255
  End If
  
End Sub

Sub SrchForFiles()

    Dim FileNameWithPath As Variant
    Dim ListOfFilenamesWithParh As New Collection
    
    'Dosyalarınızın bulunduğu klasörü değiştiriniz
    Call FileSearchByHavrda(ListOfFilenamesWithParh, "c:\deneme\", "*.docx", True)

    Dim z As Long
    Dim ws As Worksheet
    Application.ScreenUpdating = False


    ' Print list to immediate debug window and as a message window
    For Each FileNameWithPath In ListOfFilenamesWithParh    ' cycle for list(collection) processing

            ' Print down the first column (A)
            z = z + 1
            'ws.Cells(z, 1) = FileNameWithPath
            'Cells(z, 1) = FileNameWithPath
            'Workbooks.Open Filename:=FileNameWithPath, UpdateLinks:=0
            dosyaadi = FileNameWithPath
            Call worddeara
    Next FileNameWithPath

    ' Print to immediate debug window and message if no file was found
    If ListOfFilenamesWithParh.Count = 0 Then
        Debug.Print "No file was found !"
        MsgBox "No file was found !"
    End If

    Application.ScreenUpdating = True
    Exit Sub


End Sub

Private Sub FileSearchByHavrda(pFoundFiles As Collection, pPath As String, pMask As String, pIncludeSubdirectories As Boolean)
  Dim DirFile As String
    Dim CollectionItem As Variant
    Dim SubDirCollection As New Collection

    ' Add backslash at the end of path if not present
    pPath = Trim(pPath)
    If Right(pPath, 1) <> "\" Then pPath = pPath & "\"

    ' Searching files accordant with mask
    DirFile = Dir(pPath & pMask)
    Do While DirFile <> ""
    pFoundFiles.Add pPath & DirFile  'add file name to list(collection)
    DirFile = Dir ' next file
    Loop

    ' Procedure exiting if searching in subdirectories isn't enabled
    If Not pIncludeSubdirectories Then Exit Sub

    ' Searching for subdirectories in path
    DirFile = Dir(pPath & "*", vbDirectory)
    Do While DirFile <> ""
        ' Add subdirectory to local list(collection) of subdirectories in path
        If DirFile <> "." And DirFile <> ".." Then If ((GetAttr(pPath & DirFile) And vbDirectory) = 16) Then SubDirCollection.Add pPath & DirFile
        DirFile = Dir 'next file
    Loop

    ' Subdirectories list(collection) processing
    For Each CollectionItem In SubDirCollection
         Call FileSearchByHavrda(pFoundFiles, CStr(CollectionItem), pMask, pIncludeSubdirectories) ' Recursive procedure call
    Next

End Sub

Sub worddeara()
    Dim wrdApp As Word.Application
    Dim wrdDoc As Word.Document
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    Set wrdDoc = wrdApp.Documents.Open(dosyaadi)
    Dim FindWord As String
   
    wrdApp.Selection.WholeStory
    wrdApp.Selection.Find.ClearFormatting
    
    Call sonsatirne
        
    For i = 1 To ensonsatir
    FindWord = Cells(i, 1).Value
    
    With wrdApp.Selection.Find
      
        .Text = FindWord
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = True
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        
        satir = satir + 1
        Cells(satir, 3).Value = FindWord
        Cells(satir, 5).Value = dosyaadi
         
        If .Execute Then
            Cells(satir, 4).Value = "Var"
        Else
            Cells(satir, 4).Value = "Yok"
        End If
          
    End With
    Next
    wrdApp.Quit SaveChanges:=0 ' wdDoNotSaveChanges (Word constant not defined in Excel)

End Sub
 
ilgi ve alakanız için çok müteşekkirim

üstadım, konuyu daha önce kod işleme yazma boyutunda hiç çalışmadım. vaktiniz müsait olur ise detaylı bir açıklama yapabilirmisiniz.

saygılarımla
 
Eğer bir bir program istiyorsanız neredeyse her derde deva olan Total Commander'ı tavsiye edebilirim. Windows'tan sonra ilk kurduğum programdır.

Basitçe anlatmak gerekirse:
ALT+F7 tuşlarına basarak arama kutusunu açın.
"Search for" yazan kısma *.docx, *.xlsx yazın
Aşağıdaki "Fint text" kutusunu seçin. Aktifleşen kutuya aradığınız kelimeyi yazın.
Sağ taraftan "Start Search" düğmesine basın.

Total Commander: www.ghisler.com
 
ZuCChiNi üstadım çok sağolun. ben aynı anda 10 15 kelime aramasını yapsın istiyorum. bu 10 15 kelimeden birtanesi veya fazlası varsa bulup listelesin
 
asri
üstadım ilgi ve alakanız için çok müteşekkirim.
kodu nasıl kullanabileceğimi vaktiniz müsait olursana açıklayabilirmisiniz
 
İdris SERDAR

hocam programı inceledim birden fazla kelimeyi arattıramadım. kelimelerin hepsini yazıldığı gibi yanyana (yani cümle) gibi algılıyor. burada amaç herbir kelimeyi VE bağlacı kullanıyor gibi bağımsız aratmak
 
Son düzenleme:
asri
üstadım emeğinize yüreğinize sağlık. çok iyi çalışıyor.
 
asri üstadım

arama modülü farklı excel veya word uzantıları için, yani *.xlsx , *.xls , *.docx, "*.doc" için kullanılabilirmi
 
asri üstadım

arama modülü farklı excel veya word uzantıları için, yani *.xlsx , *.xls , *.docx, "*.doc" için kullanılabilirmi

İstediğiniz formatları destekleyecek şekilde revize edildi.

http://asriakdeniz.com/word-docx-dosyalarinda-coklu-arama/


Aranan Kelimeler Var / Yok Bulunan Dosyalar
Merhaba Var C:\DENEME\Merhaba 1002 siz.doc
nasılsın Var C:\DENEME\Merhaba 1002 siz.doc
1002 Yok C:\DENEME\Merhaba 1002 siz.doc
1004 Var C:\DENEME\Merhaba 1002 siz.doc
1006 Var C:\DENEME\Merhaba 1002 siz.doc
1008 Var C:\DENEME\Merhaba 1002 siz.doc

Merhaba Var C:\DENEME\merhaba 1002 siz.xls
nasılsın Var C:\DENEME\merhaba 1002 siz.xls
1002 Yok C:\DENEME\merhaba 1002 siz.xls
1004 Var C:\DENEME\merhaba 1002 siz.xls
1006 Var C:\DENEME\merhaba 1002 siz.xls
1008 Var C:\DENEME\merhaba 1002 siz.xls

Merhaba Var C:\DENEME\merhaba 1004 suz.xlsx
nasılsın Var C:\DENEME\merhaba 1004 suz.xlsx
1002 Var C:\DENEME\merhaba 1004 suz.xlsx
1004 Yok C:\DENEME\merhaba 1004 suz.xlsx
1006 Var C:\DENEME\merhaba 1004 suz.xlsx
1008 Var C:\DENEME\merhaba 1004 suz.xlsx

Merhaba Var C:\DENEME\Merhaba 1006 siz.docx
nasılsın Var C:\DENEME\Merhaba 1006 siz.docx
1002 Var C:\DENEME\Merhaba 1006 siz.docx
1004 Var C:\DENEME\Merhaba 1006 siz.docx
1006 Yok C:\DENEME\Merhaba 1006 siz.docx
1008 Var C:\DENEME\Merhaba 1006 siz.docx

Merhaba Var C:\DENEME\Merhaba hepsi.doc
nasılsın Var C:\DENEME\Merhaba hepsi.doc
1002 Var C:\DENEME\Merhaba hepsi.doc
1004 Var C:\DENEME\Merhaba hepsi.doc
1006 Var C:\DENEME\Merhaba hepsi.doc
1008 Var C:\DENEME\Merhaba hepsi.doc

Merhaba Var C:\DENEME\merhaba hepsi.xls
nasılsın Var C:\DENEME\merhaba hepsi.xls
1002 Var C:\DENEME\merhaba hepsi.xls
1004 Var C:\DENEME\merhaba hepsi.xls
1006 Var C:\DENEME\merhaba hepsi.xls
1008 Var C:\DENEME\merhaba hepsi.xls
 
Benimde buna benzer bir arama dosyasına ihtiyacım var ancak mantık biraz farklı.
Hepsi aynı formatta hazırlanmış birçok fiyat listem var. malzeme adı - miktar - birim fiyat olarak gidiyor. Malzeme adı yazdığımda her listedeki o malzemeyi bulup listelerde fiyatlarınıda göstermesine ihityacım var aynı zamanda firma isimlerinide görmem gerekiyor hangi firmadan kaça almışım en son görmem gerekiyor. Ancak bunu her ara dediğimde bütün listeleri teker teker açmak yerine kendine bir data oluşturması yani kendi içine çekmesi yada bir databaseye çekmesi yeni listeler eklendiğinde fiyatları güncelle dendiğinde ise yeni eklenen listeleri kendi datasına eklemesi gerekiyor. Bu şekilde bir uygulama mümkün müdür.
 
Benimde buna benzer bir arama dosyasına ihtiyacım var ancak mantık biraz farklı.
Hepsi aynı formatta hazırlanmış birçok fiyat listem var. malzeme adı - miktar - birim fiyat olarak gidiyor. Malzeme adı yazdığımda her listedeki o malzemeyi bulup listelerde fiyatlarınıda göstermesine ihityacım var aynı zamanda firma isimlerinide görmem gerekiyor hangi firmadan kaça almışım en son görmem gerekiyor. Ancak bunu her ara dediğimde bütün listeleri teker teker açmak yerine kendine bir data oluşturması yani kendi içine çekmesi yada bir databaseye çekmesi yeni listeler eklendiğinde fiyatları güncelle dendiğinde ise yeni eklenen listeleri kendi datasına eklemesi gerekiyor. Bu şekilde bir uygulama mümkün müdür.

Bu soruyu ayrı bir başlıkta ve örnek dosya ile yazarsanız, daha hızlı sonuç alırsınız.
 
latif Bey günaydın ,

malesef bu program .msg outlok dosyaları içinde aram yapmıyor 3 ün de işaretleme yapıp arama yapabileceğim bir pro araıyorum, ilginiz için teşekkürler...
 
Geri
Üst