Excel Datei exportieren nach eine XML Datei
#11
Smile 
(23.06.2015, 20: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
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
Top
#13
(24.06.2015, 19: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
Top
#14
Hallo,

(25.06.2015, 14: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
Top
#15
(25.06.2015, 19: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)
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
Top
#17
Sorry, Sorry,    :16:

Es Funktioniert zu 100%    :18:      

War mein Fehler, ich habe es Übersehen.

Danke
Top


Gehe zu:


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