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

Forumthread: Bild auf Sharepoint in Userform anzeigen

Bild auf Sharepoint in Userform anzeigen
15.02.2023 08:29:54
Karsten
Moin,
ich habe ein Bild auf einem offenen Sharepoint/TEAMS liegen.
Wenn ich folgenden Link im Google Chrome eingebe, wir das Bild angezeigt.
https://teams.xxx.com/sites/betrieb/shared%20documents/Unterlagen/Startbild.jpg
Wenn ich jetzt per Macro dieses Bild in einer Userform anzeigen lassen will, kommt dein Fehler
Hauptmenue.Startbild.Picture = loadpicture("https://teams.xxx.com/sites/betrieb/shared documents/Unterlagen/Startbild.jpg")

Laufzeitfehler 75
Fehler beim Zugriff auf Pfad/Datei.
Woran kann das liegen?
Gruß
Karsten J.
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild auf Sharepoint in Userform anzeigen
16.02.2023 14:12:54
ChrisL
Hi
Ich glaube die Bilddatei müsste erst runtergeladen und lokal gespeichert werden.
ChatGPT (Link im Forumstitel) schlägt folgenden Code vor:
Sub DownloadImageFromSharePoint()
    Dim filePath As String
    Dim imageUrl As String
    Dim imgData() As Byte
    Dim httpReq As Object
    Dim fileStream As Object
    
    ' Set the file path where you want to save the image
    filePath = "C:\Users\YourName\Desktop\image.jpg"
    
    ' Set the URL of the image on SharePoint
imageUrl = "https://YourSharePointSite.com/sites/YourSite/YourLibrary/image.jpg"
    
    ' Create a new HTTP request object
    Set httpReq = CreateObject("MSXML2.XMLHTTP")
    
    ' Send the request to the SharePoint server
    httpReq.Open "GET", imageUrl, False
    httpReq.send
    
    ' Check if the request was successful
    If httpReq.Status = 200 Then
    
        ' Get the image data from the response
        imgData = httpReq.responseBody
        
        ' Create a new file stream object
        Set fileStream = CreateObject("ADODB.Stream")
        
        ' Write the image data to the file stream
        fileStream.Type = 1 ' Binary
        fileStream.Open
        fileStream.Write imgData
        fileStream.SaveToFile filePath
        fileStream.Close
        
        ' Load the image into the image control
        UserForm1.Image1.Picture = LoadPicture(filePath)
        
    End If
    
End Sub
cu
Chris
Anzeige
AW: Bild auf Sharepoint in Userform anzeigen
17.02.2023 14:10:54
Karsten
Hallo
in der Zeile
httpReq.send
kommt ein Fehler und zwar "Access denied".
Die Links stimmen und Rechte sind vorhanden.
Gruß
Karsten
AW: Bild auf Sharepoint in Userform anzeigen
17.02.2023 14:26:29
ChrisL
Hi
Du darfst auch direkt mit ChatGPT korrespondieren. ;)
Der Fehler "Access Denied" beim Ausführen der Zeile httpReq.send in Ihrem Code kann verschiedene Gründe haben. Hier sind einige mögliche Ursachen und Lösungen, die Ihnen helfen könnten, das Problem zu beheben:
SharePoint-Site erfordert Anmeldung: Wenn Ihre SharePoint-Site eine Anmeldung erfordert, müssen Sie Ihre Anmeldeinformationen im Code bereitstellen, damit Sie auf die Site zugreifen und die Datei herunterladen können. Fügen Sie die folgende Codezeile hinzu, bevor Sie die Anforderung senden, um sich bei der SharePoint-Site anzumelden:
httpReq.SetCredentials "", "", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
Ersetzen Sie und durch Ihre tatsächlichen Anmeldeinformationen.
Ungültige SharePoint-Site-URL: Überprüfen Sie, ob die SharePoint-Site-URL in Ihrem Code korrekt ist und auf eine gültige Site verweist. Wenn die URL falsch ist oder auf eine ungültige Site verweist, erhalten Sie möglicherweise den Fehler "Access Denied".
Firewall- oder Sicherheitseinstellungen blockieren den Zugriff: Wenn Ihr Computer oder Netzwerk durch eine Firewall oder andere Sicherheitseinstellungen geschützt ist, kann dies den Zugriff auf die SharePoint-Site und den Download der Datei blockieren. Sie müssen möglicherweise die Einstellungen anpassen oder die Firewall vorübergehend deaktivieren, um den Download durchzuführen.
Berechtigungen für die Datei sind falsch konfiguriert: Wenn die Berechtigungen für die Datei auf der SharePoint-Site falsch konfiguriert sind, erhalten Sie möglicherweise den Fehler "Access Denied". Stellen Sie sicher, dass Sie die erforderlichen Berechtigungen haben, um die Datei herunterzuladen.
Ich hoffe, diese Tipps helfen Ihnen, das Problem zu identifizieren und zu lösen.
cu
Chris
Anzeige
AW: Bild auf Sharepoint in Userform anzeigen
18.02.2023 09:23:27
Karsten
Vielen Dank für deine Hilfe.
Aber ich bin dafür wohl doch nicht clever genug.
Ich werde eine andere Möglichkeit suchen, wie ich das lösen kann.
Das Bild doch nicht auf dem SharePoint legen, sondern lokal.
Muss nur sehen, wie ich verhindern kann, dass jemand das Bild austauscht.
Das sollen nur ausgewählte Personen machen.
Denn das Programm ist für jeden MA der Firma aufrufbar.
Das Bild zeigt immer besondere Themen an und da soll nicht plötzlich ein Nacktbild auftauchen oder so.
Meine Überlegung ist, das Bild in eine Excel Datei zu machen, die Datei mit einem Kennwort zu schützen.
Dann die Datei aufrufen, das Bild kopieren und die Datei zu schließen.
Gruß
Karsten
Anzeige
AW: Bild auf Sharepoint in Userform anzeigen
18.02.2023 16:39:29
ChrisL
Hi
Der Code-Schnipsel für die Credentials wurde unvollständig angezeigt. Den müsste man noch vervollständigen. Ob es damit gehen würde, weiss ich auch nicht.
Deine Idee mit der PW geschützten Datei finde ich persönlich viel zu umständlich. Es gäbe noch tausend andere Varianten, um seine Nacktbilder zu verteilen bzw. um eine Datei zu sabotieren.
Lege die Bilddatei einfach in einen anderen Ordner, den man nicht so leicht findet. Das VBA-Projekt schützen, damit man den Pfad nicht direkt lesen kann.
cu
Chris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bild auf SharePoint in Userform anzeigen


Schritt-für-Schritt-Anleitung

  1. Bild herunterladen: Um das Bild von SharePoint in deiner Userform anzuzeigen, musst du es zuerst lokal speichern. Verwende dafür den folgenden VBA-Code:

    Sub DownloadImageFromSharePoint()
       Dim filePath As String
       Dim imageUrl As String
       Dim imgData() As Byte
       Dim httpReq As Object
       Dim fileStream As Object
    
       ' Set the file path where you want to save the image
       filePath = "C:\Users\YourName\Desktop\image.jpg"
    
       ' Set the URL of the image on SharePoint
       imageUrl = "https://YourSharePointSite.com/sites/YourSite/YourLibrary/image.jpg"
    
       ' Create a new HTTP request object
       Set httpReq = CreateObject("MSXML2.XMLHTTP")
    
       ' Send the request to the SharePoint server
       httpReq.Open "GET", imageUrl, False
       httpReq.send
    
       ' Check if the request was successful
       If httpReq.Status = 200 Then
           ' Get the image data from the response
           imgData = httpReq.responseBody
    
           ' Create a new file stream object
           Set fileStream = CreateObject("ADODB.Stream")
    
           ' Write the image data to the file stream
           fileStream.Type = 1 ' Binary
           fileStream.Open
           fileStream.Write imgData
           fileStream.SaveToFile filePath
           fileStream.Close
    
           ' Load the image into the image control
           UserForm1.Image1.Picture = LoadPicture(filePath)
       End If
    End Sub
  2. Anmeldeinformationen bereitstellen: Wenn deine SharePoint-Site eine Anmeldung erfordert, füge die folgende Zeile hinzu, bevor du die Anfrage sendest:

    httpReq.SetCredentials "<dein benutzername>", "<dein passwort>", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER
  3. Fehlermeldungen berücksichtigen: Achte darauf, dass die URL korrekt ist und die Berechtigungen für den Zugriff auf die Datei vorhanden sind.


Häufige Fehler und Lösungen

  • Laufzeitfehler 75: Dieser Fehler deutet darauf hin, dass der Pfad oder die Datei nicht zugänglich ist. Überprüfe die URL und stelle sicher, dass die Datei existiert.

  • Access Denied: Dieser Fehler kann auftreten, wenn die Anmeldeinformationen nicht korrekt sind oder wenn die Berechtigungen auf der SharePoint-Seite nicht ausreichen. Stelle sicher, dass du die richtigen Anmeldeinformationen nutzt.

  • Bild nicht angezeigt: Vergewissere dich, dass das Bild erfolgreich heruntergeladen wurde und der Pfad zum Bild korrekt angegeben ist.


Alternative Methoden

Wenn du das Bild nicht direkt von SharePoint laden möchtest, kannst du es auch lokal speichern und nur den Pfad in der Userform verwenden. Eine weitere Möglichkeit ist, das Bild in eine Excel-Datei einzufügen und diese Datei mit einem Kennwort zu schützen. Dies kann jedoch umständlich sein.


Praktische Beispiele

  1. Excel-Blattname auslesen: Wenn du den Namen des aktuellen Excel-Blattes auslesen möchtest, kannst du folgenden Code verwenden:

    Dim sheetName As String
    sheetName = ActiveSheet.Name
  2. Excel-Kopfzeile sperren: Um die Kopfzeile in Excel zu sperren, gehe zu "Ansicht" > "Fenster fixieren" > "Oberste Zeile fixieren".


Tipps für Profis

  • Dynamisches Einbinden von Bildern: Verwende die Funktion LoadPicture in Kombination mit einer dynamischen URL, um Bilder basierend auf Benutzereingaben anzuzeigen.

  • Sicherheit erhöhen: Schütze dein VBA-Projekt mit einem Passwort, um unbefugten Zugriff auf den VBA-Code und die Bildpfade zu verhindern.

  • SharePoint in Explorer einbinden: Wenn du häufig auf SharePoint zugreifen musst, kannst du SharePoint in den Windows Explorer einbinden, um einen einfacheren Zugriff auf die Dateien zu ermöglichen.


FAQ: Häufige Fragen

1. Wie kann ich ein Bild aus Excel in eine Userform einfügen?
Du kannst das Bild mit dem LoadPicture-Befehl in eine Userform laden, nachdem du es lokal gespeichert hast.

2. Was kann ich tun, wenn das Bild nicht angezeigt wird?
Überprüfe den Pfad, die Berechtigungen und stelle sicher, dass das Bild erfolgreich heruntergeladen wurde. Achte auch darauf, dass der Dateipfad korrekt ist.

3. Ist es möglich, Bilder dynamisch aus dem Internet einzubinden?
Ja, mit VBA kannst du Bilder dynamisch aus dem Internet einbinden, indem du sie zuerst herunterlädst und dann in der Userform anzeigst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige