• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

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:
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:
Sn.veyselemre

Teşekkürler.

Önümüzdeki yıl bu çok işime yarayacak.
 
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
 
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
 
Ö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:
Geri
Üst