Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel Datei exportieren nach eine XML Datei
#11
Smile 
(23.06.2015, 19:46)Steffl schrieb: meine Codeänderung an dieser Stelle war großer Mist  :16:  Etwas weiter oben war ja schon eine fast passende Konstellation vorhanden.

Danke

Die Doppel "Null" sind korrigiert. :)

Ist es auch noch machbar, das wenn keine Rufnummer vorhanden ist auch keine "0" gesetzt wird?
Desweiteren wird ein Komplett Leeres Datensatz erzeugt.

   

Danke
Antworten Top
#12
Hallo,

das mit dem leeren Datensatz war klar  :21:  Schau mal deine bisherige Berechnung in der Schleife an

Code:
  'Kontakte schreiben
  'For i = 8 To AnzKontakte + 8
  For i = 8 To AnzKontakte + 7
 
     Tmp = ""
     Tmp = "<Contact " & "Id=" & Chr(34) & "" & Chr(34) & " FirstName=" & Chr(34) & wsData.Cells(i, 5) & Chr(34) & " LastName=" & Chr(34) & wsData.Cells(i, 4) & Chr(34)
     'hier die 2 in eine 3 geändert
     If wsData.Cells(i, 3) = "" Then
       RufNr = IIf(IsEmpty(wsData.Cells(i, 6)), "", "0" & ws.Data.Cells(i, 6)) ' mit VAz
     Else
       RufNr = wsData.Cells(i, 6)  ' Avaya-Nst
     End If
    'Tmp = Tmp & " Work=" & Chr(34) & RufNr & Chr(34)
    'Tmp = Tmp & " Work=" & Chr(34) & RufNr & Chr(34) & " Mobile=" & Chr(34) & "0" & wsData.Cells(i, 7) & Chr(34) & " Home=" & Chr(34) & "0" & wsData.Cells(i, 8) & Chr(34)
     Tmp = Tmp & " Work=" & Chr(34) & RufNr & Chr(34) & " Mobile=" & Chr(34) & IIf(IsEmpty(wsData.Cells(i, 7)), "", "0" & wsData.Cells(i, 7)) & _
     Chr(34) & " Home=" & Chr(34) & IIf(IsEmpty(wsData.Cells(i, 8)), "", "0" & wsData.Cells(i, 8)) & Chr(34)
     Tmp = Tmp & " Favorite=" & Chr(34) & "false" & Chr(34) & " SpeedDial=" & Chr(34) & "false" & Chr(34) & " ReadOnly=" & Chr(34) & "false" & Chr(34) & ">"
   
     f.writeline (Tmp)
   
     Tmp = "<Address Address1=" & Chr(34) & wsData.Cells(i, 11) & Chr(34) & " Address2=" & Chr(34) & wsData.Cells(i, 12) & Chr(34) & " />"
     f.writeline (Tmp)
     Tmp = "<ClickToDial Work=" & Chr(34) & "false" & Chr(34) & " Mobile=" & Chr(34) & "false" & Chr(34) & " Home=" & Chr(34) & "false" & Chr(34) & " Video=" & Chr(34) & "false" & Chr(34) & " IM=" & Chr(34) & "false" & Chr(34) & " />"
     f.writeline (Tmp)
     Tmp = "</Contact>"
     f.writeline (Tmp)
 
   Next i
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#13
(24.06.2015, 18:54)Steffl schrieb: das mit dem leeren Datensatz war klar  :21:  Schau mal deine bisherige Berechnung in der Schleife an

99% ist erledigt/bereinigt.

nur noch wenn bei "Work" keine Rufnummer hinterlegt ist, wird eine "0" gesetzt.
Kannst du das auch noch bereinigen?

Danke
Antworten Top
#14
Hallo,

(25.06.2015, 13:34)FaDos schrieb: nur noch wenn bei "Work" keine Rufnummer hinterlegt ist, wird eine "0" gesetzt.

Das verstehe ich jetzt nicht. Denn hier

Code:
If wsData.Cells(i, 3) = "" Then
       RufNr = IIf(IsEmpty(wsData.Cells(i, 6)), "", "0" & ws.Data.Cells(i, 6)) ' mit VAz
     Else
       RufNr = wsData.Cells(i, 6)  ' Avaya-Nst
     End If

wird die Null (mit Rufnummer) nur gesetzt, wenn die Spalte F nicht leer ist und die Spalte C leer ist.
Gruß Stefan
Win 10 / Office 2016
Antworten Top
#15
(25.06.2015, 18:30)Steffl schrieb: wird die Null (mit Rufnummer) nur gesetzt, wenn die Spalte F nicht leer ist und die Spalte C leer ist.

Hallo Steffl,

Bei "Mobile" und bei "Home" wird wenn leer keine "0" gesetzt.
Bei "Work" wird bei leer leider eine "0" gesetzt.

an bei die Tabelle und die XML.
         


Angehängte Dateien
.xlsm   Telefonbuch-Test.xlsm (Größe: 42,28 KB / Downloads: 3)
Antworten Top
#16
Hallo,

dann schaue mal, ob in den betreffenden Zellen nicht ein Leerzeichen enthalten ist. Dies ist zum Beispiel auch in deiner Spalte C der Fall.

Nachtrag: Außerdem hast Du meinen angepaßten Codebereich mit der Rufnummer

Code:
     If wsData.Cells(i, 3) = "" Then
       RufNr = IIf(IsEmpty(wsData.Cells(i, 6)), "", "0" & wsData.Cells(i, 6)) ' mit VAz
     Else
       RufNr = wsData.Cells(i, 6)  ' Avaya-Nst
     End If


nicht ausgetauscht.
Gruß Stefan
Win 10 / Office 2016
[-] Folgende(r) 1 Nutzer sagt Danke an Steffl für diesen Beitrag:
  • FaDos
Antworten Top
#17
Sorry, Sorry,    :16:

Es Funktioniert zu 100%    :18:      

War mein Fehler, ich habe es Übersehen.

Danke
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste