Excel Vba İle Word Belgesi Ve Yolunu Kaydetme

1 2 3
26/02/2022, 11:58

berduş

aşağıdaki dosyayı dener misiniz?
1 - dosyanızın makroları çalıştırabilmesi için dosyanızın makroları destekleyen formatta (xlsm, xlsb gibi) olması gerek
2 - referanslardan Microsoft Word xx.x Object Library eklenmeli
Word belgesi seçme kodu
Sub WordAd()
t1 = Timer
Application.ScreenUpdating = False
Set sht = ThisWorkbook.Worksheets("WordXL")
      i = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row + 1
Dim fDialog As FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
    .AllowMultiSelect = True
    .Title = "Word belgelerini seçiniz"
    .InitialFileName = ThisWorkbook.Path
    'Optional: Add filters
    .Filters.Clear
    .Filters.Add "Word Belgeleri", "*.doc,*.docx"
    .Filters.Add "Tüm Dosyalar", "*.*"

If .Show = -1 Then
DsSay = 0
    For Each xWord In .SelectedItems
      Word2Text xWord, i
      i = i + 1
      DsSay = DsSay + 1
    Next xWord
End If
End With
Application.ScreenUpdating = True
  MsgBox "Aktarım Tamam! " & vbNewLine & "Süre : " & (Timer - t1) & " saniye " & vbNewLine & "Aktarılan Dosya sayısı : " & DsSay
End Sub
excele aktarma kodu
Public Sub Word2Text(ByVal xFilePath As String, ByVal xSatir As Long)  'Word2Text "d:\Desktop\Word2Excel\19 - Vba Class Modules.docx"

  Dim x As Document
  Set x = Documents.Open(xFilePath, ReadOnly:=True, Visible:=False)
  Dim data
  Set data = x.Content
  ' do something with the content or the document
  xStr = data
  Sayfa1.Cells(xSatir, 1) = xStr
  Sayfa1.Cells(xSatir, 2) = xFilePath
  'close the document
  x.Close
  Set x = Nothing

End Sub
26/02/2022, 12:52

akaygisiz

Üstadım tek kelimeyle enfes. Ne kadar teşekkür etsem az olur sağ olun var olun. Birden çok word belgesini ve yolunu sırayla Excel hücrelerine aktarıyor hemde saniyeler içerisinde.
26/02/2022, 12:54

berduş

Rica ederim
İyi çalışmalar)

Yalniz aşağıdaki kod hatalı
Filters.Add "Word Belgeleri", "*.dox,*.docx"
Orası dox değil doc olacaktı dalgınlığıma gelmiş o kısmı düzeltmelisiniz
26/02/2022, 22:30

akaygisiz

Düzeltiyorum hocam ilginiz için teşekkür ederim.
26/02/2022, 22:33

berduş

Bu arada hücrelerin veri sınırı aşılırsa tüm içerik alınamaz, dolayısıyla uzun metinlerde bu yöntem sorun çıkarabilir.
26/02/2022, 23:03

akaygisiz

Evet hocam bende şuan bu konu ile ilgili bir kaç belge deniyorum 32767 karakter alıyor en fazla. Eğer içeri aktardığımız belge, hücre sınırını aşıyorsa; bir alt satıra devam etmesi gibi bir döngü olabilir mi acaba? Mümkün müdür?
1 2 3