Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
972to976
972to976
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Als HTML speichern - variabler Name

Als HTML speichern - variabler Name
04.05.2008 10:04:05
G.H
Hallo!
Ich habe schon einige Forumbeiträge gefunden, die das Speichern als html betreffen, aber noch keinen,
der mein Problem hat:
Ich erstelle per Access ca 30 Excel-Sheets mit unterschiedlichen Namen und Pfaden. Jetzt möchte ich
die Excel-Listen automatisch beim Drücken eines Buttons als html im selben Ordner abspeichern.
Habe bisher diesen Code:
dateiname = Replace(ActiveWorkbook.FullName, ".xls", ".htm")
MsgBox dateiname ' nur zur Überprüfung - gibt den pfad mit der Endung htm an
With ActiveWorkbook.PublishObjects(Sheets(2))
.HtmlType = xlHtmlStatic
.Filename = "& Dateiname &"
.Publish (False)
.AutoRepublish = False
End With

Bei diesem Code aber kommt immer ein Fehler - und der Debugger zeigt auf die With ActiveWorkbook...-Zeile!
Aber was kann ist da falsch ? Ich möchte IMMER nur das 2. Tabellenblatt ausgeben!
Vielen Dank,
G.H.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Als HTML speichern - variabler Name
04.05.2008 10:59:04
ramses
Hallo
Von wo aus läuft der Code ?
EXCEL oder ACCESS
Wenn von ACCESS aus, dann musst du zuerst ein EXCEL-Application Object erstellen und dann auf dein Workbook verweisen.
Aus EXCEL würde es grundsätzlich so funktionieren
Option Explicit

Sub test()
    With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
        "\\myserver\sharename\folder\filename.htm", "Sheet1", "", xlHtmlStatic, "", "")
        .Publish True
        .AutoRepublish = False
    End With
End Sub

Gruss Rainer

Anzeige
AW: Als HTML speichern - variabler Name
04.05.2008 11:54:49
G.H.
Hallo Rainer!
Erst mal Danke für die rasche Antwort. Zu deiner Frage:
Ja, ich erstelle zuerst das Excel, öffne es und möchte dann per Knopfdruck die HTML-Seite. Aber mein
Problem ist ja, dass der Name NICHT immer "sheet1" und "sheet2" ist - daher möchte ich eben genau diesen
Namen (habe das hier mit Sheets(2) angedeutet) variabel haben. Aber mit Sheets(2) geht es nicht!
Vielleicht ist es jetzt ein bisschen verständlicher ausgedrückt... ;-)
lg

Dann musst du Rainer's Subroutine para...
04.05.2008 15:49:00
Luc:-?
...metrieren, G.
Also ungefähr so:

Sub test(Optional ByRef Wsh As Worksheet)
If Wsh = Nothing Then Set Wsh = ActiveSheet


Statt "Sheet1" schreibst du dann Wsh.Name.
Kann sein, dass sich die Subroutine dann nicht per "Knopfdruck" aufrufen lässt - trotz Optional (geht, glaube ich, nur mit optionalen Parametern vom Typ Variant)! Dann entweder entsprechend umstellen, wenn sich der Aufruf ohne Parameter lohnt (bei häufigem Verwenden des aktuellen Blattes) oder du musst dir einen Satz unparametrierter Aufruf-Subroutinen anlegen, die die das jeweilige Blatt als Parameter übergeben.
Alternativ könnte die Subroutine den Blattnamen auch abfragen, evtl aus einer Zelle. Hierbei könnte der Blattname auch mit einer Formel ermittelt wdn, z.B. als Ausblendung aus ZELLE("dateiname";Blatt!Bereich). So könnte allerdings auch der gesamte Pfad übergeben wdn.
Es sind auch noch andere Möglichkeiten der Blattnamensübergabe denkbar. So bspw mit einer Globalvariablen, evtl unter Einbeziehung einer Ereignisprozedur. Die einfachste mag aber die erstgenannte sein.
Gruß Luc :-?

Anzeige
AW: Dann musst du Rainer's Subroutine para...
04.05.2008 16:08:00
G.H.
Aha - das kommt also heraus, wenn ich bei VBA-Kenntnissen GUT eingebe - ich habe leider fast nichts
von dem verstanden, was du geschrieben hast...Was muss ich jetzt machen ?
Soll ich jetzt Whs.Name statt "sheet1" eingeben, oder nicht?

Ja, wenn du alles andere auch so machst!
04.05.2008 16:22:00
Luc:-?
Allerdings kannst du ja auch den anderen Weg wählen und den Namen aus einer festgelegten, stets gleichen Zelle auslesen, G.
Dann musst du allerdings noch eine Variable deklarieren (As String) die diesen Text aufnimmt: _ p>

Dim WshN As String
WshN = Range("diesezelle")


...und das dann ohne Parameter und "sheets1" durch WshN ersetzen.
Luc :-?
PS: Deine Kenntnisse sollten schon deiner Angabe entsprechen, sonst reden wir aneinander vorbei. In Fällen von Selbstüberhebung kennen wir keine Gnade... ;-)
Tipp: Mal die xl/VBA-Objektstruktur, die Befehlsliste und alle Hilfekapitel durchzählen nach dem Prinzip "Kenn ich - Kenn ich nicht", daraus eine %Zahl machen und die auf die Forums-Einstellungsmöglichkeiten für UserKenntnisse anwenden. Da sollte sich dann das Richtige ergeben... ;-)

Anzeige
AW: Als HTML speichern - variabler Name
05.05.2008 23:58:00
Ramses
Hallo
Sorry,... aber du solltest schon wissen welches Sheet es ist :-)
Alternativ mit "ActiveSheet" arbeiten.
Habe das jetzt nicht getestet, sollte aber tun
Option Explicit

Sub test()
With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, _
"\\myserver\sharename\folder\filename.htm", "" & ActiveSheet.Name & "", "",  _
xlHtmlStatic, "", "")
.Publish True
.AutoRepublish = False
End With
End Sub


Gruss Rainer

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige