XML Çıktısı Almak

Katılım
29 Kasım 2004
Mesajlar
69
Elimdeki excel dosyasında 5 sayfa mevcut. Bunun 3 sayfasını ayrı ayrı xml çıktısını almak istiyorum makro ile tuş yapılsa tuşa bastığında xml çıktısını otomatik üretebilse. Yardımcı olabilecek biri var ise mail olarak dosyayı ve istediğim çıktı şeklini atabilirim çok teşekkür ederim.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,644
Excel Vers. ve Dili
Pro Plus 2021
Dosyanızı link vererek paylaşırsanız, birileri mutlaka yardımcı olacaktır, bu şekilde ne istediğinizi bilmeden yardımcı olmak zor.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,644
Excel Vers. ve Dili
Pro Plus 2021
Referanslardan Microsoft XML işaretli olmalıdır.
Kodu deneyin.

Kod:
Sub Create_XML()
    If ActiveSheet.Name <> "n11" Then Exit Sub
    Dim objDom As DOMDocument
    Dim objRootElem As IXMLDOMElement
    Dim objRowElem As IXMLDOMElement
    Dim objChildElem(1 To 10) As IXMLDOMElement

    Set objDom = New DOMDocument

    Set objRootElem = objDom.createElement("Root")
    objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"
    objDom.appendChild objRootElem

    For sat = 1 To Cells(Rows.Count, 1).End(3).Row
        Set objRowElem = objDom.createElement("Row")
        For sut = 1 To 10
            If Cells(sat, sut) <> Empty Then
                Set objChildElem(sut) = objDom.createElement(Cells(1, sut))
                objChildElem(sut).Text = Cells(sat, sut)
                objRowElem.appendChild objChildElem(sut)
            End If
        Next sut
        objRootElem.appendChild objRowElem
    Next sat
    
    objDom.Save ("d:\n11.xml")
    
    Set objDom = Nothing
    Set objRootElem = Nothing
    Set objRowElem = Nothing
    Erase objChildElem
    
End Sub
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,644
Excel Vers. ve Dili
Pro Plus 2021
Aşağıdaki kodla 3 sayfayın xml dokumunu D dizinine sayfa ismiyle oluşturur.
Kod:
Sub Create_XML()

    Dim objDom As DOMDocument
    Dim objRootElem As IXMLDOMElement
    Dim objRowElem As IXMLDOMElement
    Dim objChildElem(1 To 10) As IXMLDOMElement


    For Each sayfa In Array("n11", "gg", "ggdetay")
        Set objDom = New DOMDocument

        Set objRootElem = objDom.createElement("Root")
        objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"
        objDom.appendChild objRootElem

        Sheets(sayfa).Select

        For sat = 1 To Cells(Rows.Count, 1).End(3).Row
            Set objRowElem = objDom.createElement("Row")
            For sut = 1 To 10
                If Cells(sat, sut) <> Empty Then
                    Set objChildElem(sut) = objDom.createElement(Cells(1, sut))
                    objChildElem(sut).Text = Cells(sat, sut)
                    objRowElem.appendChild objChildElem(sut)
                End If
            Next sut
            objRootElem.appendChild objRowElem
        Next sat
        objDom.Save ("d:\" & sayfa & ".xml")

        Set objDom = Nothing
        Set objRootElem = Nothing
        Set objRowElem = Nothing
        Erase objChildElem
    Next sayfa

End Sub
 
Katılım
22 Nisan 2010
Mesajlar
530
Excel Vers. ve Dili
Excel 2007 TR
Veysel bey;
Kod içinde yer alan;
objRootElem.setAttribute "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"

esprisi nedir. İnternet sayfası gibi...
 
Üst