Tabelle per makro als Webseite speichern

Guten Abend!

Ich habe ein Makro erstellt, mit dessen Hilfe eine Tabelle als Webseite gespeichert wird. Es geht darum, dass das Dokument nach dem speichern nicht mehr geändert werden kann.

_Private Sub CommandButton1_Click()

ActiveWorkbook.SaveAs Filename:=„R:\Daten\Archiv“ & Range(„M3“) & „.htm“, FileFormat _

:=xlHtml, ReadOnlyRecommended:=False, CreateBackup:=False

ActiveWorkbook.Save
ActiveWorkbook.Close SaveChanges = True
End Sub_

Dummerweise speichert es die komplette Arbeitsmappe. Es soll aber nur ein Tabellenblatt dieser Mappe gespeichert werden. Habe es mit „Makro aufzeichnen“ probiert, aber das funktioniert auch nicht. Habt ihr eine Idee? Bin bis jetzt in keinem Forum fündig geworden.

Gruß
Maik

Hallo Maik,

ich habe mal einene Makro aufgezeichnet und dabei in einer mehrblättrigen Arbeitsmappe Folgendes gemacht (Excel 2010):
Datei - Speichern unter …
Dateityp „Webseite“ auswählen
Bei „Speichern:“ auswählen „Auswahl: Tabelle“
Dann Speichern.

Der Makro, der dabei rauskam, sieht so aus:

Sub Makro1()
'
' Makro1 Makro
'

'
 With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, \_
 "C:\Dokumente und Einstellungen\Andreas\Eigene Dateien\Mappe1.htm", "Tabelle1" \_
 , "", xlHtmlStatic, "Mappe1\_20190", "")
 .Publish (True)
 .AutoRepublish = False
 End With
End Sub

Kannste ja mal versuchen.

Gruß, Andreas

hallo Andreas, danke für den Tip. hatte es auch schonmal probiert. Wenn ich das Makro dann einfüge kommt das raus:

Laufzeitfehler „1004“ Die Methode „Publish“ für das Objekt „PublishObject“ ist fehlgeschlagen

Hier das Makro:

With ActiveWorkbook.PublishObjects.Add(xlSourceSheet, „R:\Archiv“ & Range(„M3“) & „.htm“, „Lieferschein“, „“, xlHtmlStatic, „Mappe1_20190“, „“)

.Publish (True)

.AutoRepublish = False

End With

Hallo Maik,

nur mal schnell ins Blaue geraten: Hast du evtl. vor dem „Archiv“ einen Backlslash zu viel?

Gruß, Andreas

Hallo, nein. kommt davon, dass ich nicht den kompletten pfad aufgeführt habe. Denk dir denk / einfach weg. Im Original-makro ist der Pfad komplett und richtig. Sorry, wenn ich dich verwirrt habe… ;o)

OK,
bin momentan zu müde. Melde mich morgen wieder.
Gute Nacht, Andreas

Grüezi Maik

Versuche es doch mal so, dass Du das Tabellenblatt als neue Mappe kopierst und so dann speicherst:

Private Sub CommandButton1\_Click()
Dim strName As String

 strName = Range("M3").Value

 Worksheets("Tabelle1").Copy 'Hier den Namen des Tabellenblattes angeben

 ActiveWorkbook.SaveAs Filename:="R:\Daten\Archiv\" & strName & ".htm", \_
 FileFormat:=xlHtml, \_
 ReadOnlyRecommended:=False, \_
 CreateBackup:=False
 ActiveWorkbook.Close SaveChanges:=True


 ActiveWorkbook.Save
 ActiveWorkbook.Close SaveChanges:=True
End Sub

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hallo Maik,

Thomas hat dir ja eine, wie ich finde, sehr praktikabele Lösung gepostet. Wenn du einverstanden bist, werde ich an dem Makro, den ich aufgezeichet hatte (und der bei dir nicht läuft) nicht weiter rumdoktoren.

Gruß, Andreas

Guten Morgen Andreas :wink:

Hab das Problem anders gelöst. Ich lasse das Makro einfach den Druckbereich als JPG exportieren. Schon hab ich das, was ich brauche. Hab den VBA Code dazu in nem anderen Forum gefunden.

Danke dir trotzdem für die Mühe

Maik