Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: .XML-Datei einlesen, ändern und abspeichern

.XML-Datei einlesen, ändern und abspeichern
02.04.2013 16:59:04
Horst
Halli Hallo Leute,
ich versuche mich gerade in VBA einzufuchsen und die ersten Erfolge gibt es auch schon, jedoch stößt man doch auch schnell an seine Grenzen. So auch bei dem folgenden Problem:
Ich möchte über eine Startbutton eine .XML-Datei öffnen (klappt soweit), da in dieser jedoch ein Fehler ist, will ich diese ändern, unter gleichem Dateinamen speichern und dann in einem neuen Excelsheet öffnen.
Mein bisheriger Code, ohne Änderung und Zwischenspeichern, sieht wie folgt aus:
  • 
    Sub Datei_oeffnen()
    Dim varRetVal As Variant
    Dim LResult As String
    ChDir "I:\xy"  'Auswahl des Laufwerkpfades
    ChDrive "I:\xy"
    varRetVal = Application.GetOpenFilename( _
    fileFilter:="XML-Dateien (*.xml), *.xml", _
    Title:="Eine Datei zum Öffnen auswählen")     'Öffnen des oben angegebenen Pfades  _
    unter alleiniger Darstellung von XML-Dateien
    If varRetVal = False Then Exit Sub
    On Error Resume Next
    Workbooks.Open Filename:=varRetVal
    On Error GoTo 0
    End Sub
    


  • Ich würde jetzt nach dem Öffnen ("On Error Resume Next") ein Replace einsetzen, jedoch kann ich nicht recht sagen wie das aussehen soll.
    Die Kombination "Daten" soll gesucht, ausgeschnitten und ganz am Ende der Datei eingefügt werden bzw. gelöschen und geschreiben am Ende.
    Vielen Dank für eure Hilfe!

    Anzeige

    7
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    02.04.2013 22:42:21
    schauan
    Hallo Horst,
    wenn Du die Datei so aufgemacht bekommst dann kannst Du mal versuchen, den code aufzuzeichnen. Starte den Makrorekorder, suche nach "Daten", schneide das aus und schreibe es ans Ende.
    Das Ende bekommst Du mit ... = Cells(Rows.Count, x).End(xlup).Row heraus. Statt x nimmst Du die Spaltennummer, wo Du das Ende suchst. Dann musst Du eine Zeile tiefer gehen, ansonsten überschreibst Du das Ende.
     Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)
    

    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    03.04.2013 09:23:48
    Horst
    Hey André,
    vielen Dank für die schnelle Hilfe.
    Es scheint nur leider nicht zu funktionieren, da er die Änderung und das Abspeichern der XML-Datei nicht aufzeichnet. Raus kommt nur folgendes:
  • Sub Umschreiben()
    ' Umschreiben Makro
    Workbooks.OpenXML Filename:="I:\xy.xml" _
    , LoadOption:=xlXmlLoadImportToList
    End Sub
    


  • Noch eine weitere Idee?
    Danke!

    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    03.04.2013 13:06:56
    schauan
    Hallo Horst,
    suchen und ersetzen wird definitiv aufgezeichnet. Hast Du eventuell die Aufzeichnung nicht beendet?
    Zum Speichern kann ich jetzt nichts schreiben, weil meine XML-Datei dabei einen Fehler bringt und sich nicht als XML speichern lässt.
     Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)
    

    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    03.04.2013 13:28:08
    Horst
    Hmmm, hab ich. Auch nochmal versucht, tun tut sich nichts.
    Möglicherweise habe ich mich auch nicht korrekt ausgedrückt: was ich jetzt über die Aufzeichnung mache, ist, dass ich das Datei öffnen Fenster öffne, die XML-Datei mit dem Editor öffne, hier ändere, speicher und dann diese abgeänderte Datei in Excel öffne.
    Der Part ab dem Editor fehlt bei meinen Aufzeichnungen komplett. Und ob das in XML oder txt gespeichert wird, sollte denke ich nicht so relevant sein, oder?
    Kannst du deine Aufzeichnung für mich hier mal reinstellen als Beispiel?

    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    03.04.2013 15:40:45
    schauan
    Hallo Horst,
    aufzeichnen kannst Du nur, was Du im Excel tust. Was im Editor passiert, steht auf einem anderen Blatt. Wenn Du eine XML "automatisch" bearbeiten lassen willst, müsstest Du entweder alles komplett im Excel tun - sofern das möglich ist - oder mit einem externen Programm arbeiten. Eine ähnliche Programmiersprache dazu wäre z.B. VBS bzw. WScript.
     Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)
    

    Anzeige
    AW: .XML-Datei einlesen, ändern und abspeichern
    03.04.2013 16:11:48
    Horst
    Vielen Dank, damit ist das Problem wohl erstmal hinten angestellt. Am Ende könnte ich mich dann nochmal mit VBS und Co rumschlagen.

    AW: .XML-Datei einlesen, ändern und abspeichern
    04.04.2013 17:40:38
    Hajo_Zi
    warum offen, wenn hinten angestellt?

    ;

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    XML-Datei in Excel einlesen, bearbeiten und speichern


    Schritt-für-Schritt-Anleitung

    1. XML-Datei öffnen: Du kannst eine XML-Datei in Excel öffnen, indem du den folgenden VBA-Code verwendest. Dieser Code öffnet eine Dialogbox, um die XML-Datei auszuwählen:

      Sub Datei_oeffnen()
          Dim varRetVal As Variant
          ChDir "I:\xy"  ' Setze den Pfad zur XML-Datei
          varRetVal = Application.GetOpenFilename( _
              fileFilter:="XML-Dateien (*.xml), *.xml", _
              Title:="Eine Datei zum Öffnen auswählen")
          If varRetVal = False Then Exit Sub
          On Error Resume Next
          Workbooks.Open Filename:=varRetVal
          On Error GoTo 0
      End Sub
    2. Daten ändern: Um einen bestimmten Text in der XML-Datei zu suchen und zu ersetzen, kannst du den Replace-Befehl verwenden. Hier ein Beispiel, wie du "Daten" suchst und an das Ende der Datei anhängst:

      Sub Daten_aendern()
          Dim ws As Worksheet
          Set ws = ActiveSheet
      
          ' Suche nach "Daten" und schneide es aus
          Dim rng As Range
          Set rng = ws.Cells.Find(What:="Daten", LookIn:=xlValues)
      
          If Not rng Is Nothing Then
              Dim ausCut As String
              ausCut = rng.Value
              rng.ClearContents
      
              ' Füge "Daten" ans Ende der Datei hinzu
              Dim lastRow As Long
              lastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row + 1
              ws.Cells(lastRow, 1).Value = ausCut
          End If
      End Sub
    3. XML-Datei speichern: Um die Änderungen in der XML-Datei zu speichern, kannst du den Befehl Save verwenden:

      Sub Datei_speichern()
          ActiveWorkbook.Save
      End Sub
    4. Excel schließen: Um das Excel-Dokument zu schließen, kannst du den folgenden Code verwenden:

      Sub Excel_schliessen()
          Application.Quit
      End Sub

    Häufige Fehler und Lösungen

    • Fehler beim Öffnen der XML-Datei: Stelle sicher, dass der Pfad zur Datei korrekt ist. Überprüfe auch, ob die Datei nicht von einem anderen Programm verwendet wird.

    • Änderungen werden nicht gespeichert: Überprüfe, ob du das Workbook korrekt gespeichert hast. Falls du die XML-Datei nicht speichern kannst, könnte es an der Struktur der XML-Datei liegen.

    • Makro funktioniert nicht: Stelle sicher, dass die Makros in Excel aktiviert sind. Gehe zu „Datei“ > „Optionen“ > „Trust Center“ und aktiviere die Makros.


    Alternative Methoden

    • VBS zum Bearbeiten von XML-Dateien: Wenn du die XML-Datei automatisch bearbeiten möchtest, kannst du auch VBScript (VBS) verwenden. Damit kannst du die XML-Datei ohne Excel bearbeiten.

    • XML-Datei im Editor bearbeiten: Falls die Änderungen in Excel nicht funktionieren, kannst du die XML-Datei auch direkt im Texteditor öffnen, die gewünschten Änderungen vornehmen und die Datei speichern.


    Praktische Beispiele

    1. Beispiel für das Einlesen einer XML-Datei:

      Sub XML_einlesen()
          Workbooks.OpenXML Filename:="I:\xy.xml", LoadOption:=xlXmlLoadImportToList
      End Sub
    2. Beispiel für das Bearbeiten einer XML-Datei:

      Sub XML_bearbeiten()
          ' Hier kannst du den Code aus Schritt 2 verwenden
      End Sub
    3. Beispiel für das Speichern einer XML-Datei:

      Sub XML_speichern()
          ' Hier kannst du den Code aus Schritt 3 verwenden
      End Sub

    Tipps für Profis

    • Makros automatisieren: Du kannst die oben beschriebenen Schritte in ein einziges Makro integrieren, das die XML-Datei öffnet, die Änderungen vornimmt und die Datei speichert.

    • Fehlerbehandlung implementieren: Verwende On Error GoTo um Fehler während der Ausführung deines Makros zu behandeln.

    • Regelmäßige Backups: Bevor du Änderungen an wichtigen XML-Dateien vornimmst, erstelle immer ein Backup der Originaldatei.


    FAQ: Häufige Fragen

    1. Kann ich eine XML-Datei automatisch mit Excel öffnen? Ja, du kannst die XML-Datei automatisch mit dem VBA-Code öffnen, den ich oben beschrieben habe.

    2. Wie speichere ich die Änderungen in der XML-Datei? Du kannst die Änderungen speichern, indem du den ActiveWorkbook.Save Befehl verwendest, nachdem du die Änderungen vorgenommen hast.

    3. Gibt es eine Möglichkeit, XML-Dateien ohne Excel zu bearbeiten? Ja, du kannst auch VBS oder einen Texteditor verwenden, um XML-Dateien zu bearbeiten, ohne Excel zu nutzen.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige