Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Bereich als Website speichern

Forumthread: Bereich als Website speichern

Bereich als Website speichern
12.11.2024 14:03:17
maylmz
Hallo zusammen,

ich habe eine Datei die in einem Sharepoint abgespeichert ist. Hier werden ca. stündlich Werte eingetragen.
In einem anderen Arbeitsblatt gibt es ein Bereich den ich gerne mit einem Klick (z.B. Website) immer mit den zuletzt gespeicherten Werten abrufen möchte.
Folgendes habe ich probiert, was nur bedingt klappt:
ich habe mit dem Recorder den zu speichernden Bereich zuerst markiert > speichern unter > Speicher: "meine Auswahl" > als htm. speichern aufgezeichnet.
Dann habe ich diesen Code mit dem Ereignis Workbook_BeforeClose abgespeichert und die Datei geschlossen. Bis hierhin funktioniert alles wie ich es mir vorstelle. Es wird eine htm. vom ausgewählten Bereich gespeichert.

Hier der Code vom Recorder:
Sub Workbook_BeforeClose(Cancel As Boolean)


Range("A1:T56").Select
ActiveWorkbook.Save
With ActiveWorkbook.PublishObjects( _
"Aufschreibung_14788")
.HtmlType = xlHtmlStatic
.Filename = _
"https://sharepoint.com/sites/Ordner/Testdatei.htm"
.Publish (False)
.AutoRepublish = False
End With

End Sub



Nun zum eigentlichen Problem:
Sobald ein anderer Benutzer die Datei bearbeitet, speichert und schließt kommt folgende Fehlermeldung:
"Speichern als Website ist fehlgeschlagen. Bitte prüfen sie die Netzwerkverbindung oder Berechtigung."


Alle Benutzer haben aber die benötigten Berechtigungen sowohl auf die SP Seite als auch auf das Dokument.

Durch GPT Herbers habe ich mir Hilfe erhoft. Hier wurde der Code umgeschrieben aber leider ohne Erfolg.

Hier der Code von GPT Herbers:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim publishObject As PublishObject
Dim speicherPfad As String
Dim zielArbeitsblatt As Worksheet

' Arbeitsblatt und Speicherort definieren
speicherPfad = "https://sharepoint.com/sites/Ordner/Testdatei.htm"
Set zielArbeitsblatt = ThisWorkbook.Sheets("DeinArbeitsblattName") ' Hier Arbeitsblattnamen anpassen

' Fehlerabfangroutine aktivieren
On Error GoTo Fehlerbehandlung

' Ziel-Arbeitsblatt aktivieren, um den richtigen Bereich zu erfassen
zielArbeitsblatt.Activate

' Vorherige PublishObjects am gleichen Speicherort löschen, falls vorhanden
For Each publishObject In ActiveWorkbook.PublishObjects
If publishObject.SourceType = xlSourceRange And publishObject.Filename = speicherPfad Then
publishObject.Delete ' Vorherige PublishObjects löschen
End If
Next publishObject

' Neues PublishObject für den korrekten Bereich und das korrekte Arbeitsblatt erstellen
Set publishObject = ActiveWorkbook.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=speicherPfad, _
Sheet:=zielArbeitsblatt.Name, _
Source:="A1:T56", _
HtmlType:=xlHtmlStatic)

' Einstellungen für das PublishObject festlegen
With publishObject
.AutoRepublish = False
.Publish (True) ' Veröffentlichen starten
End With

' Speicherung der Arbeitsmappe
ActiveWorkbook.Save
Exit Sub

Fehlerbehandlung:
MsgBox "Speichern als Website ist fehlgeschlagen. Bitte prüfen Sie die Netzwerkverbindung oder Berechtigungen.", vbExclamation
Resume Next ' Code fortsetzen, ohne den Benutzer zu blockieren
End Sub



GPT sagt das Objekt PublishObject speichert wohl den Benutzer und muss neu erstellt werden oder so.. Habe leider zu wenig Erfarung hier..


Wenn irgendjemand einen einfacheren Vorschlag für mich hat einen Bereich bei Excel so zu speichern das ich den mit einem Link aufrufen kann, wäre ich genauso dankbar :)

Vielen Dank schonmal für alle die Helfen ;)


(Und wenn der eine oder andere meint wieder meckern zu müssen weil ich eine falsche Bezeichnung genommen habe oder einen punkt falsch gesetzt habe. Überspring meinen Beitrag und Helfe dem nächsten mit deinem Masterwissen :) )

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich als Website speichern
12.11.2024 17:27:46
Oberschlumpf
Hi,

nur ne Idee und ungetestet.

Wenn es beim 1. Mal funktioniert, danach aber nicht, ist der Grund vielleicht die schon bestehende Datei "Testdatei.htm".
Änder im Code mal Testdatei.htm um in Testdatei2.htm, und erst jetzt schließt du die Datei, um den BeforeClose-Close-Code auszuführen.

Hilfts?
Nein? Da weiß ich auch nicht weiter.

Ciao
Thorsten
Anzeige
AW: Bereich als Website speichern
13.11.2024 13:23:28
maylmz
Hey, hat leider nicht funktioniert aber macht nichts. Ich habe es anders lösen können. Statt .htm habe ich einfach speichern als pdf genommen.
Hier hat die Aufzeichnung wunderbar funktioniert. Ich war viel zu sehr mit dem Problem .htm beschäftigt das ich keine anderen alternativen ausprobiert habe.
Trotzdem vielen Dank für deinen Vorschlag.

Gruß, maylmz
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige