Schon vor drei Jahren war das mal Thema hier ohne endgültige Lösung.
Ich bastele derzeit an einer Möglichkeit.
Also: Eine Excel-Datei mit 5 Spalten erstellen.
Z. Bsp
Die Spalten sollten als Text formatiert sein, dann lassen sich die die Telefonnummern besser eingeben (führende Null oder Pluszeichen).
Eine Formatierung bzw. Validierung der Nummer soll auch noch eingebaut werden.
Über Entwicklertools ein neues Makro anlegen und folgenden Code einfügen:
Wenn man die erstellte XML-Datei in der Fritzbox zur Wiederherstellung des Telefonbuches benutzt, ergänzt die FB-Software selbst fehlende Bezeichner und Tags.
Achtung! Das vorhandene Telefonbuch wird immer überschrieben.
Nächster Schritt im Code wird das Ausfiltern leerer Zellen und Überlegungen zu weiteren sinnvollen Tags.
Und auch ein Import einer FB-Sicherungsdatei des Telefonbuches ist mittelfristig geplant.
Viel Vergnügen beim Anwenden und Experimentieren.
Für Hinweise bin ich sehr dankbar.
Viele Grüße
Peter
Ich bastele derzeit an einer Möglichkeit.
Also: Eine Excel-Datei mit 5 Spalten erstellen.
Z. Bsp
Name (realName) | Telefon privat (home) | Telefon geschäftlich (work) | Telefon mobil (mobile) | Fax (fax_work) |
Die Spalten sollten als Text formatiert sein, dann lassen sich die die Telefonnummern besser eingeben (führende Null oder Pluszeichen).
Eine Formatierung bzw. Validierung der Nummer soll auch noch eingebaut werden.
Über Entwicklertools ein neues Makro anlegen und folgenden Code einfügen:
Code:
Sub XML_Export()
Dim strDateiname As String
Dim strDateinameZusatz As String
Dim strMappenpfad As String
Dim intCutExt
'Datename ohne Ext. (nach Punkt suchen):
intCutExt = Len(ActiveWorkbook.Name) - InStrRev(ActiveWorkbook.Name, ".") + 1
strMappenpfad = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - intCutExt)
'strDateinameZusatz = "-" & Year(ActiveSheet.Cells(3, 1).Value) & "-" & Month(ActiveSheet.Cells(3, 1).Value) & ".xml"
strDateinameZusatz = "-" & Format(Now, "YYYY-MM-DD-HH-MM-SS") & ".xml"
strDateiname = InputBox("Bitte den Namen der XML-Datei angeben.", "XML-Export", strMappenpfad & strDateinameZusatz)
If strDateiname = "" Then Exit Sub
Range("A2").Select
'Erstellt die Telefonbuchdatei (hier: xxx.xml)
'Dateiname kann frei gewählt werden
'Der entsprechende Ordner MUSS vorhanden sein, da sonst ein Fehler auftritt
Set fs = CreateObject("scripting.filesystemobject")
Set a = fs.createtextfile(strDateiname, True)
'Schreibt den allgemeinen Teil der Telefonbuchdatei
a.writeline ("<?xml version=" & """1.0""" & " encoding=" & """utf-8""" & "?>")
a.writeline ("<phonebooks>")
a.writeline ("<phonebook")
'a.writeline ("<phonebook name=" & """Telefonbuch 1""" & " owner=" & """1""" & ">")
'Schleife zur Ermittlung aller Einträge
'Benutzt alle Datensätze, die einen Namen enthalten
i = 0
While ActiveCell.Offset(i, 0) <> ""
Dim realName As String
realName = ActiveCell.Offset(i, 0)
Dim home As String
home = ActiveCell.Offset(i, 1)
Dim work As String
work = ActiveCell.Offset(i, 2)
Dim mobile As String
mobile = ActiveCell.Offset(i, 3)
Dim fax_work As String
fax_work = ActiveCell.Offset(i, 4)
'Schreibt den Telefonbucheintrag
a.writeline ("<contact><category>0</category>")
a.writeline ("<person><realName>" + realName + "</realName></person><telephony>")
a.writeline ("<number type=" & """home""" & " prio=" & """1""" & " id=" & """0""" & ">" + home + "</number>")
a.writeline ("<number type=" & """work""" & " prio=" & """1""" & " id=" & """1""" & ">" + work + "</number>")
a.writeline ("<number type=" & """mobile""" & " prio=" & """1""" & " id=" & """2""" & ">" + mobile + "</number>")
a.writeline ("<number type=" & """fax_work""" & " prio=" & """1""" & " id=" & """3""" & ">" + fax_work + "</number>")
a.writeline ("</telephony></contact>")
i = i + 1
Wend
'Ende der Schleife
'Ende der Telefonbuchdatei
a.writeline ("</phonebook>")
a.writeline ("</phonebooks")
MsgBox "Export erfolgreich. Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub
Wenn man die erstellte XML-Datei in der Fritzbox zur Wiederherstellung des Telefonbuches benutzt, ergänzt die FB-Software selbst fehlende Bezeichner und Tags.
Achtung! Das vorhandene Telefonbuch wird immer überschrieben.
Nächster Schritt im Code wird das Ausfiltern leerer Zellen und Überlegungen zu weiteren sinnvollen Tags.
Und auch ein Import einer FB-Sicherungsdatei des Telefonbuches ist mittelfristig geplant.
Viel Vergnügen beim Anwenden und Experimentieren.
Für Hinweise bin ich sehr dankbar.
Viele Grüße
Peter