Hallo,
ZITAT(doitnow @ 30.08.2008 - 9:52)

ZITAT(doitnow @ 29.08.2008 - 20:45)

Ich erzeuge den code aus eine exeltabelle.ja es sollte schon ein korrekt formatiertes Datum sein.
ich benutze seit Jahren folgendes VBA-Script um aus Excel zu exportieren:
CODE
Sub html()
doktest ("Laden Sie eine Datei!")
Dim a As Variant
az = Chr(34)
CR = Chr(13)
tda = "<td>"
tdar = "<td align=" + az + "right" + az + ">"
tde = "</td>"
ba = "<b>"
be = "</b>"
bstartalpha = ""
bendalpha = ""
While Len(area) < 5
area = InputBox(prompt:="Gib den zu konvertierenden Bereich ein!" + CR + "Bsp.: A1:D20", Title:="Bereich zum Konvertieren")
If area = "" Then End
If Len(area) < 5 Then MsgBox "Fehlerhafte Eingabe!!!" + CR + "Bitte in der Form A1:B2 eingeben!"
Wend
For pos = 1 To Len(area)
If Mid(area, pos, 1) = ":" Then
dblpoint = pos
Exit For
End If
Next pos
bstart = UCase(Mid(area, 1, dblpoint - 1))
bend = UCase(Mid(area, dblpoint + 1, Len(area)))
For pos = 1 To Len(bstart)
If Asc(Mid(bstart, pos, 1)) >= 65 And Asc(Mid(bstart, pos, 1)) <= 90 Then
bstarta = bstarta + Mid(bstart, pos, 1)
End If
Next pos
Select Case Len(bstarta)
Case 1
spalstart = Asc(bstarta) - 65
Case 2
spalstart = (26 * (Asc(Mid(bstarta, 1, 1)) - 64)) + (Asc(Mid(bstarta, 2, 1)) - 65)
End Select
zeilstart = Val(Mid(bstart, Len(bstarta) + 1, Len(bstart))) - 1
For pos = 1 To Len(bend)
If Asc(Mid(bend, pos, 1)) >= 65 And Asc(Mid(bend, pos, 1)) <= 90 Then
benda = benda + Mid(bend, pos, 1)
End If
Next pos
Select Case Len(benda)
Case 1
spalend = Asc(benda) - 65
Case 2
spalend = (26 * (Asc(Mid(benda, 1, 1)) - 64)) + (Asc(Mid(benda, 2, 1)) - 65)
End Select
zeilend = Val(Mid(bend, Len(benda) + 1, Len(bend)))
zeilen = zeilend - zeilstart
spalten = spalend - spalstart + 1
If ActiveWorkbook.Path <> "" Then
pfad = ActiveWorkbook.Path
Else
pfad = Environ("USERPROFILE") & "\Eigene Dateien"
End If
filnam = InputBox(prompt:="Gib den Dateinamen ein!" + CR + pfad + CR + "(die Endung .htm wird automatisch eingefügt)", Title:="Dateiname", Default:=ActiveWorkbook.Name)
If filnam = "" Then End
htmlfile = pfad & "\" & filnam & ".htm"
htmtitel = InputBox(prompt:="Gib den Titel der HTML-Seite ein!", Title:="HTML-Seiten-Titel", Default:="Stadt Grimmen - ")
ActiveSheet.Select
Open LCase(htmlfile) For Output As #1
Print #1, "<html><head>"
Print #1, "<title>" + htmtitel + "</title>"
Print #1, "</head><body>"
Print #1, "<table>"
For y = 1 + zeilstart To zeilen + zeilstart
Print #1, "<tr>";
For x = 1 + spalstart To spalten + spalstart
a = Cells(y, x).Value
Style = Cells(y, x).Font.FontStyle
CellForm = Cells(y, x).NumberFormat
Select Case CellForm
Case "h:mm", "h:mm:ss", "[h]:mm", "[h]:mm:ss"
IsTime = True
Case Else
IsTime = False
End Select
If Style = "Bold" Or Style = "Fett" Or Style = "Regular Fett" Or Style = "Medium" Then
If IsNumeric(a) Then
ca = tdar + ba
ce = be + tde
Else
ca = tda + ba
ce = be + tde
End If
Else
If IsNumeric(a) Then
ca = tdar
ce = tde
Else
ca = tda
ce = tde
End If
End If
typevar = VarType(a)
Select Case typevar
Case 0, 1
a = " "
Case 2, 3
a = Format(a, "#0")
Case 4, 5
If (a - Int(a) <> 0) Then
If IsTime Then
a = Format(a, "hh:mm")
IsTime = False
Else
a = Format(a, "#0.00")
End If
Else
a = Format(a, "#0")
End If
Case 6
a = Format(a, "0.00DM")
Case 7
If IsTime Then
a = Format(a, "hh:mm")
IsTime = False
Else
a = Format(a, "DD.MM.YYYY")
End If
Case 8
a = a
End Select
Print #1, ca; a; ce;
Next x
Print #1, "</tr>"
Next y
Print #1, "</table>"
Print #1, "</body></html>"
Close #1
End Sub
Sub doktest(err_msg)
CR = Chr(13)
If Workbooks.Count >= 2 Then
Else
MsgBox "Funktion nur verfügbar, wenn gespeichertes oder neues Dokument geöffnet ist!", vbOKOnly, "Fehlerhinweis!" + " - " + err_msg
End
End If
End Sub
Die Funktion "Format (...) ist Dein Freund! Es werden sicher nicht alle Varianten von Formatierungen aus Excel abgefangen, aber die wichtigsten schon. Ich hoffe, das ist es, was Du wissen wolltest.