von Axel Richter » Fr, 28.01.2011 11:11
Hallo,
Also eine Artikelnummer pro Zeile. Z.Bsp. "A1:D1"
In den jeweiligen Spalten stehen die HTML-Fragmente. Wenn man eine Zeile markiert hat kommt obiger Code raus, usw.
A B C D
<div class="element"> <a href="
http://www...?artno=12345"> 12345 </a></div>
So?
Ich benötige also nur noch den Starbasic-Code, der sagt: "welcher Zellbereich wurde vom Benutzer markiert? Mache daraus einen String, der in den <body> einer HTML-Datei eingefügt wird.
Hm. "Welcher Zellbereich wurde vom Benutzer markiert?" - ist bei Excel 2010 jetzt UsedRange? Das glaube ich erst, wenn ich es sehe. UsedRange ist der komplette genutzte, sprich mit Daten gefüllte, Tabellenbereich. "Welcher Zellbereich wurde vom Benutzer markiert?" - ist Selection. Was meinst Du nun wirklich?
Nochmals hm. "einen String, der in den <body> einer HTML-Datei eingefügt wird" - Du meinst in die Tabellenzelle der HTML-Table, die in Deinem Code drin war?
Noch Mal halb geraten:
Code: Alles auswählen
Sub html_Datei_erstellen()
FF = FreeFile()
Open "/home/axel/Dokumente/test03.html" For Output As FF 'DateiPfad bitte anpassen
oSelection = thisComponent.CurrentSelection
if not oSelection.supportsservice("com.sun.star.table.CellRange") then exit sub
aDaten = oSelection.getDataArray()
' html-Grundgerüst erstellen
' & vbLf erzeugt im html-Quelltext einen Zeilenumbruch
Print #FF, "<html>"
Print #FF, "<!-- diese Datei wurde über eine VBA-Prozedur erstellt-->"
Print #FF, "<head>"
Print #FF, "</head>"
Print #FF, "<body bgcolor=""#97A4B1"">"
' html-Tabelle einfügen
Print #FF, "<table width=""550px"" align=""center""" _
& "cellpadding=""10px"">"
' Zeile Spalte einfügen
Print #FF, "<tr><td bgcolor=""#FAF8CB"">"
'alle Bereichsdaten ausgeben
for i = 0 to ubound(aDaten)
aZeile = aDaten(i)
for j = 0 to ubound(aZeile)
Print #FF, aZeile(j)
next
Print #FF, chr(10) & chr(13)
next
' alle html-tags wieder schließen
Print #FF, "</tr>"
Print #FF, "</table>"
Print #FF, "</body>"
Print #FF, "</html>"
Close #FF
End Sub
viele Grüße
Axel
Hallo,
[quote]Also eine Artikelnummer pro Zeile. Z.Bsp. "A1:D1"
In den jeweiligen Spalten stehen die HTML-Fragmente. Wenn man eine Zeile markiert hat kommt obiger Code raus, usw.
[/quote]
A B C D
<div class="element"> <a href="http://www...?artno=12345"> 12345 </a></div>
So?
[quote]Ich benötige also nur noch den Starbasic-Code, der sagt: "welcher Zellbereich wurde vom Benutzer markiert? Mache daraus einen String, der in den <body> einer HTML-Datei eingefügt wird.[/quote]
Hm. "Welcher Zellbereich wurde vom Benutzer markiert?" - ist bei Excel 2010 jetzt UsedRange? Das glaube ich erst, wenn ich es sehe. UsedRange ist der komplette genutzte, sprich mit Daten gefüllte, Tabellenbereich. "Welcher Zellbereich wurde vom Benutzer markiert?" - ist Selection. Was meinst Du nun wirklich?
Nochmals hm. "einen String, der in den <body> einer HTML-Datei eingefügt wird" - Du meinst in die Tabellenzelle der HTML-Table, die in Deinem Code drin war?
Noch Mal halb geraten:
[code]
Sub html_Datei_erstellen()
FF = FreeFile()
Open "/home/axel/Dokumente/test03.html" For Output As FF 'DateiPfad bitte anpassen
oSelection = thisComponent.CurrentSelection
if not oSelection.supportsservice("com.sun.star.table.CellRange") then exit sub
aDaten = oSelection.getDataArray()
' html-Grundgerüst erstellen
' & vbLf erzeugt im html-Quelltext einen Zeilenumbruch
Print #FF, "<html>"
Print #FF, "<!-- diese Datei wurde über eine VBA-Prozedur erstellt-->"
Print #FF, "<head>"
Print #FF, "</head>"
Print #FF, "<body bgcolor=""#97A4B1"">"
' html-Tabelle einfügen
Print #FF, "<table width=""550px"" align=""center""" _
& "cellpadding=""10px"">"
' Zeile Spalte einfügen
Print #FF, "<tr><td bgcolor=""#FAF8CB"">"
'alle Bereichsdaten ausgeben
for i = 0 to ubound(aDaten)
aZeile = aDaten(i)
for j = 0 to ubound(aZeile)
Print #FF, aZeile(j)
next
Print #FF, chr(10) & chr(13)
next
' alle html-tags wieder schließen
Print #FF, "</tr>"
Print #FF, "</table>"
Print #FF, "</body>"
Print #FF, "</html>"
Close #FF
End Sub
[/code]
viele Grüße
Axel