read xml and fill valuesin excel form combobox

B

born2achieve

Dear friend,
i have created form in excel macros
i have one combobox in my excel form. i need to read my xml which is in
"c:\default.xml" and have to display the values in combobox.
..in my xml i need to take loop the " name" node and display all the names
which is in my xml.so please help me to achive my requirement.please show
some example for thi splease
can any one give vba code to read xml vaues please
 
J

Joel

XML files are text files. The code below can read text files. You need to
write code that will filter the XML files and extract the data you are
looking for. If you post the XML data I can help you write the filter


Sub Gettext()

Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TxtDirectory = "C:\temp\"
Const ReadFileName = "test.xml"
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Set fsread = CreateObject("Scripting.FileSystemObject")
ReadPathName = TxtDirectory & ReadFileName
Set fread = fsread.GetFile(ReadPathName)
Set tsread = fread.OpenAsTextStream(ForReading, TristateUseDefault)

RowCount = 1
Do While tsread.atendofstream = False

InputLine = tsread.ReadLine
'add filter code here
Loop
tsread.Close

End Sub
 
B

born2achieve

dear friend, this is my xml, , here i need to read the name and display in
combobox pleasehelp me

<?xml version="1.0"?>
<data>
<student>
<id>1</id>
<name>Raymond</name>
<age>11</age>
<mark>0</mark>
<designation>engneer</designation>
</student>


<student><id>2</id>
<name>Moon</name>
<age>11</age>
<mark>100</mark>
<designation>blody</designation>
</student>


<student><id>3</id>
<name>Billy</name>
<age>11</age>
<mark>100</mark>
<designation>passd</designation>
</student>


<student><id>4</id>
<name>Pan</name>
<age>12</age>
<mark>80</mark>
<designation>vhonr</designation>
</student>


<student><id>5</id>
<name>Queenie</name>
<age>10</age>
<mark>90</mark>
<designation>sogjg</designation>
</student>


</data>
 
J

Joel

Sub Gettext()

Const ForReading = 1, ForWriting = 2, ForAppending = 3
Const TxtDirectory = "C:\temp\test\"
Const ReadFileName = "test.xml"
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Set fsread = CreateObject("Scripting.FileSystemObject")
ReadPathName = TxtDirectory & ReadFileName
Set fread = fsread.GetFile(ReadPathName)
Set tsread = fread.OpenAsTextStream(ForReading, TristateUseDefault)

Do While tsread.atendofstream = False

inputline = tsread.ReadLine
If Left(inputline, 6) = "<name>" Then
newname = Mid(inputline, 7)
newname = Left(newname, InStr(newname, "<") - 1)
ActiveSheet.ComboBox1.AddItem newname
End If
'add filter code here
Loop
tsread.Close

End Sub
 
B

born2achieve

Dear friend, excellent.your code works fine
and i want to share the code that i have found also.


dim articleDoc As New DOMDocument
Dim sections As IXMLDOMNodeList
Dim sectionNode As IXMLDOMNode
Dim s As String
articleDoc.async = False
articleDoc.Load ("C:\default.xml")
'Me.Caption = articleDoc.selectSingleNode("//student/name").Text

Set sections = articleDoc.selectNodes("//student")
ComboBox1.Clear

For Each sectionNode In sections
ComboBox1.AddItem (sectionNode.selectSingleNode("name").Text)
Next
ComboBox1.ListIndex = 0

so i got two solutions.very happy friend
i have one more help .
i need to import this xml to my excel workbook using macros can u please
show me some sample code please
 
J

Joel

I added activesheet in front of combox1. Also added library references as
stated below

On the Project menu, click References. Select the type libraries for
Microsoft ActiveX Data Object 2.5 (or later) and Microsoft XML 3.0.

Sub test()

Dim articleDoc As New DOMDocument
Dim sections As IXMLDOMNodeList
Dim sectionNode As IXMLDOMNode
Dim s As String
articleDoc.async = False
articleDoc.Load ("C:\temp\test\test.xml")
'Me.Caption = articleDoc.selectSingleNode("//student/name").Text

Set sections = articleDoc.selectNodes("//student")
ActiveSheet.ComboBox1.Clear

For Each sectionNode In sections
ActiveSheet.ComboBox1.AddItem
(sectionNode.selectSingleNode("name").Text)
Next
ActiveSheet.ComboBox1.ListIndex = 0

End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top