pdf dosyalarından veri çekme

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,376
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Bunların yerine, faturaların XML dosyalarını eklerseniz daha isabetli sonuçlar alırsınız.

.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
XML Kodu

CSS:
Sub Deneme555()

Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")
Range("A2:G1000") = ""
'sat = Worksheets(ActiveSheet.Name).Cells(Rows.Count, 1).End(3).Row + 1
sat = 1
For Each dosya In fL.GetFolder(ThisWorkbook.Path).Files
If LCase(fL.GetExtensionName(dosya)) <> "xml" Then GoTo atla

Set xmlhttp = CreateObject("MSXML2.XMLHTTP")

xmlhttp.Open "GET", dosya, False
xmlhttp.send "at"
isim2 = xmlhttp.responseText

sat = sat + 1

deg4 = Split(isim2, "<cbc:IssueDate>")
deg1 = Split(isim2, "<cac:Item>")
deg2 = Split(isim2, "<cac:Price>")
deg5 = Split(isim2, "<cbc:InvoicedQuantity unitCode")

If UBound(deg1) > 0 Then

For k = 1 To UBound(deg1)
sat = sat + 1

Cells(sat, 4) = Split(Split(deg5(k), ">")(1), "<")(0)
Cells(sat, 1) = Split(deg4(1), "</cbc:IssueDate>")(0)
Cells(sat, 2) = fL.GetBaseName(dosya.Name)

deg3 = Split(Split(deg1(k), "</cac:InvoiceLine>")(0), "<cbc:Name>")

Cells(sat, 3) = Split(deg3(1), "</cbc:Name>")(0)
Cells(sat, 5) = Split(Split(deg2(k), "</cbc:PriceAmount>")(0), ">")(1)

Next k
End If

atla:

Next
MsgBox "İşlem Tamam"
End Sub
 

bulentarli

Altın Üye
Katılım
24 Eylül 2008
Mesajlar
7
Excel Vers. ve Dili
office 365 türkçe
Altın Üyelik Bitiş Tarihi
04-12-2028
Halit hocam teşekkür ediyorum emeğinize sağlık. Ancak işlemi 1,5 Dakikada gerçekleştiriyor ve dosya içerisine başka PDF dosyaları da ekledim onları görmüyor.
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
1 nolu mesaja eklediğiniz örnek pdf dosyalarındaki verileri alıyor.
eğer başka pdf dosyalarındaki veriler gelmiyorsa buraya ekleyin bir bakalım.

diğer taraftan iki dosyadan veri almak bir kaç saniye sürüyor 1,5 dakika sürmemesi gerekiyor.
 

bulentarli

Altın Üye
Katılım
24 Eylül 2008
Mesajlar
7
Excel Vers. ve Dili
office 365 türkçe
Altın Üyelik Bitiş Tarihi
04-12-2028
diğer 2 dosya haricinde bu PDF'i denedim. Sadece ilk eklediğiniz PDF'i alıyor.
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Bir kontrol et
 

Ekli dosyalar

bulentarli

Altın Üye
Katılım
24 Eylül 2008
Mesajlar
7
Excel Vers. ve Dili
office 365 türkçe
Altın Üyelik Bitiş Tarihi
04-12-2028
Halit hocam çeok teşekkür ediyorum elinize, emeğinize sağlık.
 

muzaffer.sm

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
374
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 TR
Altın Üyelik Bitiş Tarihi
20-02-2026
Halit Abi,
Başka konuları gezerken Cevaplayanın siz olduğuna ayrıca sevindim. Forumda epeydir yoktunuz sizi görmek çok güzel
hoş geldiniz.

Bende bu konuyu inceledim mesleği muhasebecilik olanların olmazsa olmazlarından birisi olan bu konuyu.

Dosyada bir kısım nokta var onu nasıl çözdünüz acaba ?
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Halit Abi,
Başka konuları gezerken Cevaplayanın siz olduğuna ayrıca sevindim. Forumda epeydir yoktunuz sizi görmek çok güzel
hoş geldiniz.

Bende bu konuyu inceledim mesleği muhasebecilik olanların olmazsa olmazlarından birisi olan bu konuyu.

Dosyada bir kısım nokta var onu nasıl çözdünüz acaba ?
Benim eklediğim dosyada ondalık ayırgaç (virgül) var senin eklediğin dosyada yok
 

muzaffer.sm

Altın Üye
Katılım
13 Kasım 2008
Mesajlar
374
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016 TR
Altın Üyelik Bitiş Tarihi
20-02-2026
9.Nolu mesajdaki dosyanızı indirip incelemiştim. Fatura döküm excel kitabını deneyerek yapmıştım. İndirdiğim dosyaları ilk açtığımda ondalık haneler ayrılmış görünüyor.
Düğmeyi sıfırdan çalıştırdığım zaman bende ayraçlar kayboluyor. Sanırım bölgesel ayarlardan kaynaklı bir durum bu
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Dosyada ikinci sayfadan veri alırken ilk baştaki veriyi atlıyordu düzeltildi.
 

Ekli dosyalar

1903emre34@gmail.com

Altın Üye
Katılım
29 Mayıs 2016
Mesajlar
919
Excel Vers. ve Dili
Microsoft Excel 2013 Türkçe
Altın Üyelik Bitiş Tarihi
06-06-2027
Merhaba,

Ekteki belgede çizili alan excel aktarmak için yardımcı olabilir misiniz
 

Ekli dosyalar

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,850
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Merhaba,

Ekteki belgede çizili alan excel aktarmak için yardımcı olabilir misiniz
Sorunuzun yeri burası değil konular tamamen farklı, talebinizde yetersiz şimdi kodları ekliyorum buraya örnek dosyanızda belirttiğiniz gibi ama size çözüm olamayacağı düşünüyorom şimdi bununla ilgili bir çok sorunuz olacak benim esas dosyam bu değildi dosyam farklı diyeceksiniz.

Buyurun kod:
Tabi şunuda belirtiyim kodun çalışması için bu konudaki dll dosyaları dosyanın yanında olmalı
CSS:
Sub Deneme1()
Dim pdfDoc As PDFDocument, pages As PDFPageCollection
Dim fL As Object
Set fL = CreateObject("Scripting.FileSystemObject")

Range("E2:E1000") = ""

sat = Worksheets(ActiveSheet.Name).Cells(Rows.Count, 5).End(3).Row + 1


For Each dosya In fL.GetFolder(ThisWorkbook.Path).Files
If LCase(fL.GetExtensionName(dosya)) <> "pdf" Then GoTo atla
Set pdfDoc = New PDFDocument
Set pages = pdfDoc.OpenPdf(dosya) 'Parola olmadığı varsayıldı.

deg = ""
For j = 0 To pages.Count - 1
deg = deg & Chr(10) & pages(j).GetText
Next j


For k = 1 To 10
deg = Replace(deg, " ", "^")
Next k

For k = 1 To 10
deg = Replace(deg, "^^", "^")
Next k

For k = 1 To 10
deg = Replace(deg, "^", " ")
Next k

deg1 = Split(Trim(deg), "Tüketim L")

If UBound(deg1) > 0 Then
Cells(sat, 5) = Split(deg1(1), Chr(10))(0)

End If

pdfDoc.ClosePdf
atla:

Next
MsgBox "İşlem Tamam"
End Sub
 
Üst