VBA Excel & XML

  • Excel

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von sterat.

    VBA Excel & XML

    Hallo zusammen,

    wir haben folgendes Problem.

    Voraussetzungen:

    1. XML Datei - als Beispiel mit folgenden Inhalt:

    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" standalone="true"?>
    2. <Telefonliste xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    3. <Datensatz>
    4. <name>Mustermann</name>
    5. <telefon>3060</telefon>
    6. <kommentar>Bekannter</kommentar>
    7. </Datensatz>
    8. <Datensatz>
    9. <name>Musterfrau</name>
    10. <telefon>4060</telefon>
    11. <kommentar>Kollegin</kommentar>
    12. </Datensatz>
    13. </Telefonliste>


    2. Excel/VBA 2010 (Access steht uns leider nicht zur Verfügung)

    Unsere Vorstellung ist es, mittels einer Form eine Abfrage zu erstellen mit Ausgabe für das Ergebnis.

    Tja, und hier ist unserer Problem. Ist es überhaupt möglich die XML Datei geziehlt mit einer VBA Form aus Excel abzufragen?
    Also, wenn ich Mustermann als Suchbegriff eingebe, soll die Tel. 3060 augegeben werden.

    Danke schon mal im Voraus.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „sterat“ ()

    Ja das ist möglich.
    Einmal einlesen in eine Klasse am besten und dann kannst damit hantieren.
    Zum XML lesen am besten mal nach XML DOM und VBA suchen.
    Man kann auch xml nach Excel importieren.

    LG
    Das ist meine Signatur und sie wird wunderbar sein!
    Hier mal mein Ansatz, der leider kein Ergebnis bringt - aber auch keine Fehlermeldung. Sprich es kommt die MSG jedoch ohne Wert.
    Erkennt jemand woran das liegt?

    Quellcode

    1. Option Explicit
    2. Private Function GetXmlNode(ByVal Dateipfad As String, ByVal Kategorie As String, _
    3. ByVal SucheNach As String, ByVal SucheWert As String, ByVal FindeWert As String) As Variant
    4. Dim xmlDatei As DOMDocument60
    5. Dim oListe As IXMLDOMNodeList
    6. Dim oKnoten As IXMLDOMNode
    7. Set xmlDatei = New DOMDocument60
    8. xmlDatei.Load Dateipfad
    9. Set oListe = xmlDatei.DocumentElement.SelectNodes(Kategorie)
    10. For Each oKnoten In oListe
    11. If oKnoten.SelectSingleNode(SucheNach).Text = SucheWert Then
    12. GetXmlNode = oKnoten.SelectSingleNode(FindeWert).Text
    13. Exit For
    14. End If
    15. Next
    16. End Function
    17. 'Nach Mustermann suchen und "telefon" ausgeben
    18. Private Sub Bt_Suchen_Click()
    19. Dim Meldung As Variant
    20. Meldung = GetXmlNode("C:\Users\user\Desktop\DB.xml", "Telefonliste", "Datensatz", "Mustermann", "telefon")
    21. MsgBox Meldung
    22. End Sub