Anzeige
Anzeige
Anzeige
Lesedauer 3 Min.

Excel-Import von CAMT.054.xml Dateien

Gemäss dem neuen ISO-Standard 20022 stellen die CH-Banken die ESR-Gutschriftsdateien ab 2018 nur noch als XML-Dateien bereit. Aber wie importiert man sie mit richtiger Darstellung der langen Nummern?

Ein Teil des Makros im Visual-Basic-Editor

© Quelle: PCtipp.ch

Die Referenznummer des verwendeten Einzahlungsscheins ist 27-stellig. Excel stellt diese jeweils als Exponentialzahl dar (z.B. 8.11127102E+26); nur in der Bearbeitungsleiste erscheint die Nummer korrekt. Wenn man versucht, das Feld umzuformatieren, wird die Zahl ab der 15. Stelle nur noch mit Nullen dargestellt (Excel-Standard). Wie kann man die lange Zahl in Excel so importieren, dass sie auch in der Liste korrekt erscheint?

Lösung: Es gibt hierfür ein Makro; eines unserer Forumsmitglieder hat es für Sie ausgetüftelt. Infos über den neuen Standard gibts hier.

Ein Teil des Makros im Visual-Basic-Editor

© Quelle: PCtipp.ch

Öffnen Sie Excel – momentan noch ohne Datei. Lassen Sie erst die Entwicklertools einblenden, falls die in Excel noch nicht zu sehen sind: Klicken Sie hierfür mit rechts auf ein Menüband, gefolgt von Menüband anpassen. Im neuen Dialog haken Sie in der rechten Spalte bei den «Hauptregisterkarten» jene namens Entwicklertools an. Klicken Sie auf OK.

Wechseln Sie zu den Entwicklertools und benutzen darin im linken Bereich den Button Visual Basic. Klicken Sie im neuen Fenster in der linken Spalte doppelt auf Diese Arbeitsmappe. Kopieren Sie untenstehenden Quellcode und fügen Sie ihn ein. Klicken Sie aufs blaue Diskettensymbol und geben Sie einen Dateinamen an. Wichtig: Damit das Makro funktioniert, müssen Sie beim Dateityp zu «Excel-Arbeitsmappe mit Makros (*.xlsm)» greifen.

Option Explicit Dim verz As String   Sub kontoAuszugLaden() Dim pfad As String, datei As String, bName As String, ext As String Dim ret As Long Dim inhalt As String Dim p As Long   ' Es wird erfragt, welche Datei eingelesen werden soll: With Application.FileDialog(msoFileDialogOpen) If verz <> "" Then .InitialFileName = verz .Filters.Add "Konto-Dateien", "*.xml" .InitialView = msoFileDialogViewDetails .Title = "Konto-Datei wählen" If .Show <> -1 Then Exit Sub pfad = .SelectedItems(1) End With   ' Aus dem kopletten Pfad werden das Verzeichnis, der Dateiname, und die Eweiterung extrahiert: verz = Left(pfad, InStrRev(pfad, "\")) datei = Mid(pfad, Len(verz) + 1) bName = Left(datei, InStrRev(datei, ".") - 1) ext = Mid(datei, InStrRev(datei, ".") + 1)   ' Die komplette Datei wird in die Variable "inhalt" gelesen: inhalt = komplettEinlesen(pfad)   ' Wenn der Ausdruck "<Ref>" in der Datei nicht vorkommt, ist es eine falsche Datei: p = InStr(inhalt, "<Ref>") If p = 0 Then MsgBox "Der Datei-Inhalt entspricht nicht dem Konto-Dateiformat", , "Geht nicht!" Exit Sub End If   ' Zwischen die erste und die zweite Ziffer der Referenznummer wird ein nicht druckbares Zeichen (TAB) eingefügt: inhalt = Left(inhalt, p + 5) & Chr(9) & Mid(inhalt, p + 6)   ' Der komplette Datei-Inhalt (Variable "inhalt") wird in eine Datei geschrieben. ' Diese Datei steht im selben Verzeichnis wie die Ursprungs-Datei. ' Sie bekommt den selben Grundnamen wie die Urpsrungsdatei, mit angehängten "_2". komplettSchreiben verz & bName & "_2." & ext, inhalt   ' Die neue Datei wird als XML-Datei geöffnet: Workbooks.OpenXML Filename:= _ verz & bName & "_2." & ext, LoadOption:=xlXmlLoadImportToList Range("A:A,E:E").NumberFormat = "0" End Sub   ' Einlesen einer kompletten Datei in eine Text-Variable: Function komplettEinlesen(datei As String) As String Dim FF As Long    ' Freie Filenummer erfragen: FF = FreeFile    ' Die Textvariable wird vorbereitet: Sie wird in der länge der Datei mit Leerzeichen gefüllt: komplettEinlesen = Space(FileLen(datei))   ' Die Datei wird geöffnet, komplett in die Variable eingelesen und wieder geschlossen: Open datei For Binary As #FF Get #FF, , komplettEinlesen Close #FF End Function   ' Schreiben einer Textvariablen als komplette Datei: Sub komplettSchreiben(datei As String, inhalt As String) Dim FF As Long   ' Freie Filenummer erfragen: FF = FreeFile   ' Die Datei wird geöffnet, mit der Textvariablen beschrieben und wieder geschlossen: Open datei For Binary As #FF Put #FF, , inhalt Close #FF End Sub 

Schliessen Sie das VisualBasic-Fenster wieder. Wenn Sie mögen, können Sie das Makro in einen Knopf in der Schnellzugriffsleiste einbauen. Das geht so: Im linken Bereich des oberen Fensterrandes zeigt Excel eine kleine «Symbolleiste für den Schnellzugriff». Da sind oft schon Vorwärts- und Zurück-Knöpfe drin, sowie z.B. ein Speichern-Icon. Am rechten Rand dieser kleinen Leiste finden Sie ein unscheinbares nach unten weisendes Dreieck. Klappen Sie dies auf und wählen Sie Weitere Befehle. Im neuen Fenster klappen Sie oben das Menü «Befehle auswählen» auf, und schalten Sie dort auf Makros um. Klicken Sie das Makro namens DieseArbeitsmappe.kontoAuszugLaden an, gefolgt von einem Klick auf den Knopf Hinzufügen. Das Makro springt in die rechte Spalte. Klicken Sie es dort an, gefolgt von der Schaltfläche Ändern (unten). Passen Sie den Anzeigenamen an, zum Beispiel «Kontoauszug laden». Wählen Sie auch ein hübsches Icon aus.

Legen Sie das Makro in die Schnellzugriffsleiste

© Quelle: PCtipp.ch

Das Icon erscheint in der Schnellzugriffsleiste. Speichern Sie die Datei. Ab sofort können Sie diese Excel-Datei öffnen, oben auf das Icon klicken und die xml-Datei öffnen. Sie wird über dieses Makro nun korrekt importiert. (PCtipp-Forum)

Kommentare

Office Datenverwaltung Kummerkasten
Anzeige
Anzeige

Neueste Beiträge

Erst flügellahm, jetzt flotter Falter
Falt-Handy Samsung Galaxy Z Fold8 im PCtipp-Test
Smartphone «innovativ»: Das zeigt Samsungs brandneue Faltkreation, das Galaxy Z Fold8 schon von aussen an. Dank des 16:10-Formats ist es ein erstklassiges Content-Creator-Werkzeug, rassige Multimedia-Zentrale und hat ebenso viel von einem eleganten E-Book-Reader. Und obendrauf gibt´s das Ganze in handlicher Reisepassgrösse. Und doch lief im PCtipp-Test nicht alles von Anfang an rund.
6 Minuten
31. Jul 2026
Honor: Neues Logo und der Wandel zum KI-Ökosystem-Anbieter
Der Technologiekonzern Honor hat sein neues Markenlogo vorgestellt. Es soll für die Ambiotionen stehen, mit denen sich der Smartphonehersteller zum Anbeiter eines offen KI-Geräte-Ökosystems transformieren will.
3 Minuten
4. Aug 2026
Bundesnetzagentur übernimmt die KI-Aufsicht in Deutschland
Die Bundesnetzagentur übernimmt ab sofort die zentrale Rolle bei der Umsetzung der europäischen KI-Verordnung in Deutschland und wird damit zur Marktüberwachungsbehörde, Anlaufstelle und Beschwerdestelle.
3 Minuten
4. Aug 2026

Das könnte Sie auch interessieren

Sicherheits-Tipps
So geht Smartphone-Schutz für Android und iOS
Viele mobile Geräte mit Android oder iOS sind von Haus aus schon recht sicher eingestellt. Aber einige wichtige Funktionen fehlen dennoch. Hier sind die besten Sicherheits-Tipps für Ihr Android-Smartphone, Android-Tablet, iPhone oder iPad. 
9 Minuten
Cheat-Sheet
Kleiner Excel-Spick von Microsoft – übersetzt von PCtipp
Microsoft hat auf einer Seite 50 nützliche Excel-Tastenkürzel bereitgestellt. Wir haben sie übersetzt und ans Schweizer Tastaturlayout angepasst.
2 Minuten
15. Jul 2026
Windows-Tipps
Optimale Einstellung für Windows 11
Im digitalen Zeitalter ist ein massgeschneidertes Betriebssystem Gold wert. Doch viele nützliche Optionen sind tief in den Einstellungen von Windows 11 versteckt. Die folgende Wegleitung hilft, noch mehr aus Ihrem Computer herauszuholen.
8 Minuten
12. Jul 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Kommentare