Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Excel 2016 LoadPicture

Forumthread: Excel 2016 LoadPicture

Excel 2016 LoadPicture
18.03.2018 11:40:03
Klaus
Hallo zusammen,
ich hatte damals ein Excel Dokument mit Excel 2013 erstellt.
Nach meine Update auf 2016 geht meine Funktion mit "LoadPicutre" nicht mehr.
Fehlermeldung:
Fehler beim Kompilieren:
Projekt oder Bibliothek nicht gefunden
folgender Befehl wurde immer ausgeführt:
anzeigeMitarbeiter.Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\Bilder\" & SDestinationPath)
Image1.Height = 107
Image1.Width = 84

Hat vielleicht jemand einen Tipp für mich?
Danke Klaus
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Excel 2016 LoadPicture
18.03.2018 11:43:33
Hajo_Zi
Halo Klaus,
folgender Code geht auch unter 2016
Option Explicit
Private Sub Image1_Click()
Dim Stdatei As String
Stdatei = Application.GetOpenFilename( _
"Bilder (*.bmp;*.jpg;*.gif),*," & _
"Bitmap (*.bmp),*,JPEG Image(*.jpg),*,CompuServe(*.gif),*")
If Stdatei  "" Then
ActiveSheet.Image1.Picture = LoadPicture(Stdatei)
End If
End Sub

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: Excel 2016 LoadPicture
18.03.2018 12:18:08
Klaus
Hallo Hajo,
vielen Dank für die schnelle Antwort.
Ich komme mit dem Befehl nicht so zurecht wenn ich ehrlich bin.
Mein Code Schnipsel sieht so aus:
Dim pfad, bildName, suche As String
pfad = ActiveWorkbook.Path & "\Bilder\"
bildName = Sheets("mitarbeiter").Range(aCell.Address).Offset(0, 11).Value
suche = Dir$(pfad & bildName)
Dim SDestinationPath
SDestinationPath = Sheets("mitarbeiter").Range(aCell.Address).Offset(0, 11).Text
Stdatei = ActiveWorkbook.Path & "\Bilder\" & SDestinationPath
If suche  "" Then
'    MsgBox "Pfad gefunden"
If Sheets("mitarbeiter").Range(aCell.Address).Offset(0, 11).Text = "" Then
'    SDestinationPath = ActiveWorkbook.Path & "\Bilder\default_profile.jpg"
Call defaultProfilBild
Image1.Height = 107
Image1.Width = 84
Else
anzeigeMitarbeiter.Image1.Picture = LoadPicture(ActiveWorkbook.Path & "\Bilder\" &  _
SDestinationPath)
Image1.Height = 107
Image1.Width = 84
End If
Else
'    MsgBox "kein Profilbild gefunden"
Call defaultProfilBild
Image1.Height = 107
Image1.Width = 84
End If
aber wie ich den dann ändern muss, stehe ich gerade auf dem Schlauch.
Anzeige
;
Anzeige

Infobox / Tutorial

Excel 2016 LoadPicture richtig nutzen


Schritt-für-Schritt-Anleitung

Um die Funktion LoadPicture in Excel 2016 korrekt zu verwenden, gehe wie folgt vor:

  1. Öffne dein Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein UserForm hinzu, falls du noch keins hast, und platziere ein Image-Control (z.B. Image1) auf dem Form.

  3. Füge den folgenden Code in das Code-Fenster des UserForms ein:

    Option Explicit
    
    Private Sub Image1_Click()
       Dim Stdatei As String
       Stdatei = Application.GetOpenFilename( _
           "Bilder (*.bmp;*.jpg;*.gif),*," & _
           "Bitmap (*.bmp),*,JPEG Image(*.jpg),*,CompuServe(*.gif),*")
       If Stdatei <> "" Then
           Image1.Picture = LoadPicture(Stdatei)
       End If
    End Sub
  4. Speichere dein Projekt und teste die Funktion, indem du auf das Bild klickst. Es sollte sich ein Dialogfeld öffnen, in dem du ein Bild auswählen kannst.


Häufige Fehler und Lösungen

  • Fehlermeldung: "Projekt oder Bibliothek nicht gefunden"
    Diese Fehlermeldung kann auftreten, wenn eine Referenz fehlt. Gehe zu Extras -> Verweise im VBA-Editor und prüfe, ob alle benötigten Bibliotheken aktiviert sind.

  • Bild wird nicht angezeigt
    Stelle sicher, dass der Pfad zu den Bildern korrekt ist. Überprüfe, ob das Bild tatsächlich existiert und der Dateiname korrekt in der Zelle steht.


Alternative Methoden

Falls du Probleme mit LoadPicture hast, kannst du auch die OLEObject-Methode verwenden:

ActiveSheet.OLEObjects("Image1").Object.Picture = LoadPicture(PathToImage)

Hierbei musst du den Namen des OLE-Objekts anpassen. Diese Methode könnte in manchen Fällen zuverlässiger sein.


Praktische Beispiele

Hier ist ein Beispiel, wie du den LoadPicture Befehl in einem größeren Kontext nutzen kannst:

Dim pfad As String
Dim bildName As String
pfad = ActiveWorkbook.Path & "\Bilder\"
bildName = "deinBild.jpg" ' Hier den Bildnamen anpassen

If Dir(pfad & bildName) <> "" Then
    Image1.Picture = LoadPicture(pfad & bildName)
Else
    MsgBox "Das Bild wurde nicht gefunden!"
End If

In diesem Beispiel wird das Bild nur geladen, wenn es im angegebenen Pfad existiert.


Tipps für Profis

  • Verwende Fehlerbehandlung: Füge On Error Resume Next und On Error GoTo 0 hinzu, um unerwartete Fehler beim Laden von Bildern abzufangen.
  • Optimierung des Bildpfades: Lagere den Bildpfad in eine separate Zelle aus, um den Code flexibler zu gestalten.
  • Kompatibilität prüfen: Teste deine VBA-Anwendungen in verschiedenen Excel-Versionen, um sicherzustellen, dass sie überall funktionieren.

FAQ: Häufige Fragen

1. Was mache ich, wenn LoadPicture nicht funktioniert?
Überprüfe den Pfad und die Dateinamen. Stelle sicher, dass die Datei existiert und die Erweiterung unterstützte Formate wie .bmp, .jpg oder .gif hat.

2. Wie kann ich ein Bild dynamisch laden?
Nutze die GetOpenFilename-Methode, um dem Benutzer die Auswahl eines Bildes zu ermöglichen, wie im Schritt-für-Schritt-Beispiel gezeigt.

3. Kann ich LoadPicture auch in Excel 2013 verwenden?
Ja, der LoadPicture-Befehl funktioniert auch in Excel 2013. Stelle sicher, dass der Code korrekt ist und alle Referenzen vorhanden sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige