XML tablodan Excel Formuna

Katılım
17 Mayıs 2005
Mesajlar
117
Excel Vers. ve Dili
2013 TR
2013 EN
Selamlar,

Bir XML belgesinden Excel de hazırlanmış olan bir tabloya aktarmam gerekiyor.

Öncelikle XML dosyasını Excelde bir sayfaya aktarıyorum ve formülasyonla başka bir sayfada tanımlı olan tabloya aktarmaya çalışıyorum. Ancak XML de oluşan dosya sabit olmadığından yani bilgiye göre başlık oluştuğundan bazı alanlara ait formüller uygulanamıyor. Excelde Formülasyon verirken bu başlık alanlarını nasıl formüle edebilirim.

Çalışma XML Dosyası : E Bildirge (Aylık Hizmet Primleri)
Çalışma Excel Tablosu :E Bildirge Matbu formu

yardımcı olabilecek arkadaşlara şimdiden teşekküler
 
Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Ekteki dosyayı inceleyin, XML dosyanızı açar verileri parse ederek Aylık Bildirge Formuna Aktarır.
Xml dosyası çalışma ile aynı klasörde bulunmalıdır.
 
Son düzenleme:
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Sn.veyselemre

Teşekkürler.

Önümüzdeki yıl bu çok işime yarayacak.
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Aşağıdaki kodlar ile xml dosyasını excel e-bildirge formatına direk aktarmaya çalışıyorum.

Üst bilgileri aktarmayı başardım.Fakat sigortalı bilgilerinde takıldım.

Öğrenmek istediğim ilgili hücrelere sigortalı bilgilerini nasıl yazdırabiliriz.

Kod:
im xmldosyayolu As Variant
xmldoc.async = False
xmldosyayolu = [j3]

If xmldoc.Load(xmldosyayolu) = False Then
MsgBox "XML Dosyası Açılamadı", vbCritical + vbDefaultButton1 + vbOKOnly, "UYARI"
Exit Sub
End If

Set Tag1 = xmldoc.getElementsByTagName("ISYERI").Item(0).Attributes
Set Tag2 = xmldoc.getElementsByTagName("BORDRO").Item(0).Attributes
[e2] = Tag1.getNamedItem("ISYERISICIL").nodeValue
[h2] = Tag1.getNamedItem("KONTROLNO").nodeValue
[e3] = Tag1.getNamedItem("ISYERIARACINO").nodeValue
[e4] = Tag1.getNamedItem("ISYERIUNVAN").nodeValue
[e5] = Tag1.getNamedItem("ISYERIADRES").nodeValue
[e6] = Tag1.getNamedItem("ISYERIVERGINO").nodeValue
[e8] = Tag2.getNamedItem("DONEMYIL").nodeValue
[e9] = Tag2.getNamedItem("DONEMAY").nodeValue
[e10] = Tag2.getNamedItem("BELGEMAHIYET").nodeValue

AttrS = Array("SIRA", "BELGETURU", "KANUN", "SIGORTALISICIL", "TCKNO", "AD", "SOYAD", "ILKSOYAD", "PEK", "GUN", _
          , "GIRISGUN", "CIKISGUN", "UCRETLIIZINGUN", "UIPEK", "EKSIKGUNNEDENI", _
          "ISTENCIKISNEDENI")

Set Tag3 = xmldoc.getElementsByTagName("SIGORTALI")
i = 0
For Each xmlElem In Tag3
'.............................????...............................
Cells(14 + i, 3).Value = xmlElem.getAttribute("BELGETURU")
Cells(14 + i, 4).Value = xmlElem.getAttribute("KANUN")
Cells(14 + i, 5).Value = xmlElem.getAttribute("SIGORTALISICIL")
'.............................????...............................
i = i + 1
Next
'Referanslardan Microsoft XML ?.? seçili olmalıdır.
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Sn.Ripek, alttaki kısmı aşağıdaki gibi düzeltin, attrs listesinden "BELGETURU" ve "KANUN" u çıkartabilirsiniz. Bu şekilde sıralı bir şekilde satıra yazacaktır.

Kod:
Set Tag3 = xmldoc.getElementsByTagName("SIGORTALI")
i = 0
For Each xmlElem In Tag3
    For x = 0 To UBound(attrs)
'.............................????...............................
    Cells(14 + i, x + 3).Value = xmlElem.getAttribute(attrs(x))
'.............................????...............................
    Next x
i = i + 1
Next
 
Katılım
14 Şubat 2006
Mesajlar
3,426
Excel Vers. ve Dili
(Excel 2016 - İngilizce)
Altın Üyelik Bitiş Tarihi
30-11-2022
Öncelikle ilginizden dolayı teşekkür ederim.

Bende uzun uğraşlardan sonra kendi çapımda da olsa bir çözüm buldum.

Sonradan Belge Türü ve Kanun alanlarının da farklı gruplandırmada olduğunu farkettim.

Ekteki dosyada hem sizin, hemde benim bulduğum çözümü bulabilirsiniz.
Burada sizin kodlar attrs listesindeki verileri karışık olarak yazıyor.(yada ben uyarlayamadım!)

Benim kodlar ise aynı Belge Türü ve Kanunlarda düzgün çalışmaktadır.
 
Son düzenleme:
Üst