Word Belgesi İsimlerini Excel Tablosunda Ayrıştırmak

Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Değerli Dostlar,
Çözemediğim,ancak çok önem arzeden bir konuyu izninizle yeniden açmak istiyorum.Word belgesini excel tablosuna sıralamak.Başka kaynaklardan bulamadım inanın.İstemim 2 tane.Birincisi,eskiden yazılmış ve belgelerime sıralanmış olan dosyaları excel tablosunda sıralamak istiyorum.İkicisi ise,yeni yazılacak olan word belgelerinin söz konu excel tablosuna otomatik olarak yazılması.Ekteki Word ve Excel tabloları herşeyi açıklıyıor.
Yardımlarınız için şimdiden teşekkürler.
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,646
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Örnek olarak eklemiş olduğunuz bütün dosyaları aynı klasör içine yerleştirdikten sonra aşağıdaki kodu TABLO-1 isimli dosyada denermisiniz.

Kod:
Option Explicit
 
Sub DOSYA_İSİMLERİNİ_AL()
    Dim Veri_Dosyası As Workbook, Dosya As Object
    Dim Dosya_Yolu As String, Dosya_Adı As String
    Dim Satır As Long, Ayır() As String, Sütun As Byte
    
    On Error GoTo Son
    
    Application.ScreenUpdating = False
    
    Set Veri_Dosyası = ThisWorkbook
    
    Dosya_Yolu = Veri_Dosyası.Path & "\"
    
    If CreateObject("Scripting.FileSystemObject").GetFolder(Dosya_Yolu).Files.Count = 0 Then GoTo Son
    
    Veri_Dosyası.Sheets("Sayfa1").Range("A2:G65536").ClearContents
    
    Satır = Veri_Dosyası.Sheets("Sayfa1").Range("A65536").End(3).Row + 1
    
    For Each Dosya In CreateObject("Scripting.FileSystemObject").GetFolder(Dosya_Yolu).Files
        
        If Right(Dosya.Name, 3) = "doc" Then
        
            Dosya_Adı = Replace(Dosya.Name, ".doc", "")
            
            If InStr(1, Dosya_Adı, "-") > 0 Then
                Ayır = Split(Dosya_Adı, "-")
            End If
            
            Veri_Dosyası.Sheets("Sayfa1").Cells(Satır, 1) = Satır - 1
            
            For Sütun = 2 To 7
                Veri_Dosyası.Sheets("Sayfa1").Cells(Satır, Sütun) = Ayır(Sütun - 2)
            Next
            
            Satır = Satır + 1
        
        End If
    Next
    
    Set Veri_Dosyası = Nothing
    Application.ScreenUpdating = True
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
    Exit Sub
 
Son:
    Set Veri_Dosyası = Nothing
    Application.ScreenUpdating = True
    MsgBox "Dosya bulunamamıştır !", vbCritical, "Dikkat !"
End Sub
 
Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Korhan Bey,örnek olan dosyaları EVRAK TAKİP DOSYASI isimli bir klasörde topladım.(Belgelerimin içerisinde)Sonra verdiğiniz kodu kopyalayıp yapıştırdım.kaydettim.Deneme içi EVRAK TAKİP DOSYASI'na yeni bir word belgesi kaydettim.Ancak,TABLO-1 de herhangi bir değişiklik olmadı.Acaba nerede yanlış yapmış olabilirim?Teşekkürler,iyi geceler.(Verdiğiniz kodu Microsoft Excel Objekts yazan yerde Sayfa 1'e koyyaladım.Olmayınca Module1 e de kopyaladım ama sonuç alamadım.)
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,646
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sn. CAFERCİFTCİ,

Masaüstünde boş bir klasör oluşturun adı önemli değil. Daha sonra word dosyalarını ve TABLO-1 isimli dosyayı bu klasöre aktarın. TABLO-1 isimli dosyayı açın. Boş bir modül ekleyip içine verdiğim kodu uygulayın. Daha sonra dosyayı kaydedip kapatın. Dosyayı tekrar açtığınızda makroları etkinleştirin. İsterseniz makroyu bir butona tanımlayarak çalıştırın. İsterseniz ALT+F8 tuşuna basarak ilgili makroyu çalıştırın.

Umarım açıklayıcı olmuştur.
 
Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Açıklamalarınız çok net ama,

Korhan Bey,
Yazdıklarınızı adım adım uyguladım.Masa üstünde AYRIŞTIRMA isimli bir klasöre 6 adet örnek word dosyasını ve TABLO-1 i yerleştirdim.Sonra Alt+F8 e bastığımda DOSYA İSİMLERİNİ AL'ı gördüm,çalıştır butonunu tıkladım.İşleminiz tamamlanmıştır uyarısı ve ekteki klasörde görebileceğiniz tablo oluştu.Benim AYRIŞTIRMA isimli klasörümün içerisinde 1234,1235,1236,2123,2124 ve 2125 numaralı 6 adet word dosyam var.Ancak,oluşan tabloda 1234,1236 ve 8 adet de 2123 dosyası sıralandı.Yani,1235,2124 ve 2125 nolu word dosyaları sıralanmadı.Onların yerine toplam 9 adet 2123 nolu word dosyası sıralandı.Kontrol etmeniz mümkün mü?Teşekkürler,saygılarımla...(Bu dosyalar belki yüzlerce olacak.Ayrıca,sütun sayısı da artacak.Yani,sayısı,ili,ilçesi,köyü,konusu,sonucu başlıklı sütunların yanına yeni sütunlar da eklenecek.Örneğin geliş tarihi,geliş sayısı,çıkış tarihi,çıkış sayısı gibi.Bunlar sorun oluşturacakmı?)
Korhan Bey,yeni farkettim,bu word dosyaları size daha önce gönderebildiğim word dosyaları.Daha fazlası eklenemediği için bu 3 adet word dosyasını ve TABLO-1 i gönderebilmiştim.Sanırım çalışmalarınız bunlara göre şekillendi.
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,646
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Ekteki örnek dosyayı incelermisiniz. 6 adet word dosyası ile ve verdiğiniz isimlere göre test ettim ve olumlu sonuç aldım.

Sütun sayısı 256 yı geçmemek kaydı ile dilediğiniz kadar arttırabilirsiniz. Kulanmış olduğum eklemiş olduğunuz formatlara göre şekillendi. Buna göre word dosya isimleriniz aşağıdaki düzende olduğu sürece problem yaşamazsınız.

1234-AYDIN-NAZİLLİ-OCAKLI-TESCİL-OLUMLU.doc

Kodda dosya isimlerindeki "-" işareti ayırıcı olarak kullanılmıştır. Ayıraç olmayan verileriniz tek sütuna yazdırılacaktır.
 

Ekli dosyalar

Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Selamlar
Korhan Bey,tek kelimeyle "MUHTEŞEM"Olmuş.Elinize,emeğinize,aklınıza sağlık kardeşim.İnanın bana,bu proğramı önerileriniz doğrultusunda biraz daha genişletebilmem mümkün olursa,çok büyük bir kamu kurumunun çok önemli bir işini hallatmiş,çok zaman kazandırmış olacak.Aklıma gelmişken sorayım.Bu word belgeleri iç içe birkaç klasörün içerisinde olursa (Yani Ana Klasör-Klasör-Word Dosyası) da çalışır mı?O klasörün içerisine yeni bir Word Dosyası kaydedersem TABLO-1 de butona basmadan yerini alır mı?İyi akşamlar,iyi çalışmalar diliyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,646
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Eğer işin içine alt klsörler girerse kodun yapısını değiştirmek gerekecektir. Her yeni word dosyası eklediğinizde kodu yeniden çalıştırmanız gerekecektir.
 
Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Korhan Bey,
Alt klasörleri açarak içlerindeki word dosyalarını tek bir klasörde toplamak daha kolay olacak sanırım.Ancak,word belgesini bu klasörün içerisine kaydettiğimde otomatikman TABLO-1 deki yerini alabilseydi,unutulma olasılığı ortadan kalkardı diye düşünüyorum.Ne dersiniz?Selamlar,saygılar,iyi çalışmalar...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,646
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Yeni eklediğiniz word dosyaları için dosyayı açıp makroyu çalıştırmak zorundasınız. Yada TABLO-1 isimli dosyanız açıkken belirli zaman aralıklarında çalışacak şekilde koda ekleme yapıp güncelleme yapması sağlanabilir fakat buda sisteminizi gereksiz yere yoracaktır. Bir alternatifte makroyu dosyanın açılışında çalışacak şekilde ayarlayabilirsiniz. Bu şekilde dosya açıldığı anda makro otomatikman çalışacağı için unutma riski biraz daha azalmış olacaktır.
 
Katılım
5 Nisan 2009
Mesajlar
533
Excel Vers. ve Dili
2003-2007
Her şey için teşekkürler...İyi çalışmalar...
 
Üst