AccessTr.neT
Excel İle Wordden Veri Alma - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Excel İle Wordden Veri Alma (/konu-excel-ile-wordden-veri-alma.html)

Sayfalar: 1 2


Excel İle Wordden Veri Alma - akaygisiz - 28/02/2022

Merhaba, daha önce bu konuya benzer bir başlık açmıştım şimdi tersten bir mantık yürütmeye çalışıyorum. Excel sayfamda A sütununda word dosyalarının yolları mevcut ve B sütununa bu doc'lari her hücreye 30bin karakter gelecek eğer aşıyorsa bir satır ekleyerek alt satıra alacak şekilde bir Vba koduna ihtiyacım var. Bu onuda yardımlarınızı bekliyorum.

Önceki konu (https://accesstr.net/konu-excel-vba-ile-word-belgesi-ve-yolunu-kaydetme.html)


RE: Excel İle Wordden Veri Alma - berduş - 28/02/2022

dosya yolları mevcut mu yoksa sadece önceki konunuzdaki gibi olacak ama sütunların yeri mi değişecek
örnek çalışmanızı ekler misiniz?


RE: Excel İle Wordden Veri Alma - akaygisiz - 28/02/2022

Hocam mobilden yazdığım için ekleyemedim, önceki konuda olduğu gibi fakat burada A sütunu elimde olan dosyanın yolu örnek.doc , B sütunu ise bu belgenin hücreye aktarılması şeklinde. Sizin vermiş olduğunuz kod üzerinden denedim fakat başarılı olamadım.


RE: Excel İle Wordden Veri Alma - akaygisiz - 28/02/2022

(28/02/2022, 15:40)berduş yazdı: dosya yolları mevcut mu yoksa sadece önceki konunuzdaki gibi olacak ama sütunların yeri mi değişecek
örnek çalışmanızı ekler misiniz?

Örnek çalışmayı 1. mesaja güncelleme olarak ekledim hocam.


RE: Excel İle Wordden Veri Alma - berduş - 28/02/2022

kodları aşağıdaki gibi düzenleyip dener misiniz?
Not: A sütunundaki yollar önce diziye aktarılıp sonra sayfa silindiği için hata ihtimaline karşı kodu çalıştırmadan önce dosya yolları başka yere kaydedilmeli
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) = xFilePath
For HrfSay = 1 To Len(data & "") Step 30000
Sayfa1.Cells(xSatir, 2) = Mid(xStr, HrfSay, 30200)
xSatir = xSatir + 1
Next HrfSay
'close the document
x.Close
Set x = Nothing

End Sub

Sub WordAd()
t1 = Timer
Application.ScreenUpdating = False
Set sht = ThisWorkbook.Worksheets("WordXL")
SonStr = sht.Cells(sht.Rows.Count, "A").End(xlUp).Row
Dim Dz As Variant
Dz = sht.Range("A2:A" & SonStr)
DsSay = UBound(Dz)
Debug.Print DsSay
sht.Range("A2:A" & SonStr).Cells.Clear
For Each xWord In Dz
i = sht.Cells(sht.Rows.Count, "B").End(xlUp).Row + 1
Word2Text xWord, i
Next xWord

Application.ScreenUpdating = True
'Debug.Print "Normal Aktarım Tamam! " & vbNewLine & "Süre : " & Timer - t1 & " saniye " & vbNewLine & "Aktarılan Dosya sayısı : " & DsSay
MsgBox "Aktarım Tamam! " & vbNewLine & "Süre : " & (Timer - t1) & " saniye " & vbNewLine & "Aktarılan Dosya sayısı : " & DsSay
End Sub

isterseniz dosya yolları bir sayfada durur işlem başka sayfada yapılır


RE: Excel İle Wordden Veri Alma - akaygisiz - 28/02/2022

Hocam denedim fakat DsSay = UBound(Dz) bu satır ile ilgili "run-time error-13 type mismatch" hatası alıyorum. Acaba eklemem gereken bir referans olabilir mi?

Hocam ben sadece A2 satırına belge yolu girmiştim deneme amaçlı. Şimdi birden fazla girdiğimde sorunsuz çalıştı +rep