Htnl per VBA

Bild

Betrifft: Htnl per VBA
von: MaBLu
Geschrieben am: 20.06.2015 22:10:53

Hallo
ich bin auf der Suche nach einem Brauchbaren Makro zum Tabellen als html auszugeben.
Leider habe ich nichts gefunden oder es geht nicht?
Ich habe Excel 2013 ev, war das das Problem.
Kann mir eventuell jemand helfen?
Mein Wunsch wäre dass ich die umzuwandelnden Zellen Markieren könnte, so dass die Tabelle genau so gross wird wie ich das möchte.
Für eure Hilfe wäre ich sehr dankbar.
MaBlu

Bild

Betrifft: AW: Html per VBA
von: MaBLu
Geschrieben am: 20.06.2015 22:17:07
Sorrry sollte natürlich html heissen.

Bild

Betrifft: Woran hast du dabei gedacht, ...
von: Luc:-?
Geschrieben am: 20.06.2015 22:45:43
…MaBlu,
eine realistische Darstellung wie hier oder reichen die üblichen TabDarstellungs­hilfsmittel, die in diversen Foren (auch hier) verwendet wdn, aus (Tab2HTMl, Jeanie, TabDarstellung in Foren)?
Gruß, Luc :-?

Bild

Betrifft: AW: Woran hast du dabei gedacht, ...
von: MaBLu
Geschrieben am: 21.06.2015 14:20:45
Hallo Luc
genau so wie es mir Sepp im folgemail zugesendet hat.
Danke

Bild

Betrifft: AW: Htnl per VBA
von: Sepp
Geschrieben am: 20.06.2015 22:40:31
Hallo ?
die Datei "C:\Temp\test.html" kannst du dann im Browser ansehen, ausgegeben wird der markierte Tabellenbereich.

' **********************************************************************
' Modul: Modul3 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub auswahlHTML()
  Dim strFileHTML As String, strHTML As String
  Dim FF As Integer
  
  strFileHTML = "C:\Temp\test.html"
  
  strHTML = RangeToHTML(Selection)
  
  FF = FreeFile
  
  If Len(strHTML) Then
    Open strFileHTML For Output As #FF
    Print #FF, strHTML
    Close #FF
  End If
  
End Sub


Public Function RangeToHTML(objRange As Range) As String
  Dim strFilename As String
  strFilename = Environ$("TEMP") & "/temp.htm"
  objRange.Parent.Parent.PublishObjects.Add( _
    SourceType:=xlSourceRange, _
    Filename:=strFilename, _
    Sheet:=objRange.Parent.Name, _
    Source:=objRange.Address, _
    HtmlType:=xlHtmlStatic).Publish True
  RangeToHTML = CreateObject("Scripting.FileSystemObject"). _
    GetFile(strFilename).OpenAsTextStream(1, -2).ReadAll
  RangeToHTML = Replace(RangeToHTML, "align=center x:publishsource=", _
    "align=left x:publishsource=")
  RangeToHTML = Replace(RangeToHTML, "<table border=0", _
    "<table align=left border=0")
  RangeToHTML = "<br><br><div>" & RangeToHTML & "</div><br>"
  Kill strFilename
End Function


Gruß Sepp


Bild

Betrifft: AW: Htnl per VBA
von: MaBLu
Geschrieben am: 20.06.2015 23:05:11
Besten Dank das hat geklappt.
Vielen Dank für die schnelle Lösung.
schönes Wochenende
MaBlu

Bild

Betrifft: cool!
von: Michael
Geschrieben am: 21.06.2015 13:12:30
Hallo zusammen,
ich bin immer wieder erstaunt, was es alles in X zu entdecken gibt!
Beim Testen ist mir aufgefallen, daß man die Spaltenbreite optimieren muß, damit nichts abgeschnitten wird.
Attribute wie f/k usw. kommen brav rüber, auch gefärbte Zellen, Rahmen um einen Teil der Zellen sehe ich allerdings nicht in der Hmtl-Datei (doch, im Quelltext, aber nicht in Chrome).
Die Größe (und damit der Inhalt) der Ausgabedatei ist nicht recht nachvollziehbar: es scheint einen Unterschied zu machen, ob neben dem markierten Bereich noch was steht oder nicht, und seltsamerweise hatte die erste Datei 2,76 K, die nächste mit nebenstehenden Daten (ich wollte die Größe des Inhalts ermitteln: 12 Zellen mit ein paar Zeichen, insgesamt 55) über 5 K, nach dem Löschen des Zusatzbereichs aber immer noch 5K. Beim Kopieren des markierten Bereichs und des Makros in eine neue, leere Datei kommen 4,5 K heraus. ???
5K für 55 Bytes Daten plus ein paar Table-Tags ist ganz schön viel, wenn ich es puristisch sehen will, aber eine Knopfdruck-Lösung macht halt *deutlich* weniger Arbeit als händisch vergebene Attribute...
Also vielen Dank, Sepp, für den erhellenden Code-Schnipsel,
schöne Grüße,
Michael
P.S.: Es ist manchmal ermüdend, nach Beispieldatein fragen zu müssen, klar, aber um "schnell" einen Sachverhalt darzustellen, finde ich eine Grafik auch nicht ohne, zumindest, wenn man das Forum nicht mit Riesendingern vollmüllt.
Das Teil hier hat 3.137 Bytes, ist also kleiner als manche HTML-Darstellung:
Userbild

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Speicherort variabel gestalten per VBA"