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

Forumthread: Bild aus Link in Userform anzeigen

Bild aus Link in Userform anzeigen
25.07.2021 22:55:52
Micha
Hallo liebe Mitglieder,
ich habe folgende Problematik in meiner Beispiel-Datei und leider noch nichts passendes gefunden:
in einer excelbasierten Mitgliederliste des Vereins sind zu jedem Mitglied Passfotos hinterlegt, aber leider nur als LINK!!!
Ich möchte bei Aufruf der Mitglieder in der UserForm aber das entsprechende Passfoto gleich automatisch immer IM VORGESEHENEN BERICH, also immer in der eingepassten Größe, mit anzeigen lassen, ohne noch einen extra Button dafür bemühen zu müssen.
Wie kann ich denn das im Code integrieren?
Die Fotos liegen immer im gleichen Ordner und werden immer gleich nach dem Mitgliedsnamen (Spalte A) benannt.
https://www.herber.de/bbs/user/147300.xlsm
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild aus Link in Userform anzeigen
26.07.2021 05:52:09
Hajo_Zi
zum Testen habe ich das nicht nachgebaut,

Private Sub nachname_AfterUpdate()
passfoto.Picture = LoadPicture(ThisWorkbook.Path & "\" & nachname & ".Jpg")
End Sub
vorher mit Dir Prüfung ob vorhanden.
If Dir(ThisWorkbook.Path & "\" & nachname & ".Jpg" , vbDirectory) "" Then
GrußformelHomepage
Anzeige
AW: Bild aus Link in Userform anzeigen
27.07.2021 00:57:58
Micha
Hallo Hajo,
erstmal vielen Dank, dass du dich meiner Problematik angenommen und einen Code zur Verfügung gestellt hast!!
Leider habe ich als VBA-Beginner noch keine Ahnung, wohin ich die "Dir"-Prüfung schreiben muss und in welcher Form? Als Sub?
Könntest du mir das noch kurz sortieren? Dann kann ich den Code ausprobieren...
Viele Grüße nach Straubing,
Micha
Anzeige
AW: Bild aus Link in Userform anzeigen
27.07.2021 04:58:16
Hajo_Zi
Hallo Micha,
das war mir eigentlich klar.
Bevor ich das Bild lade prüfe ich ob es vorhanden ist.
Also erste Aktion in ...AfterUpdate()
End if nicht vergessen vorr End Sub,
Gruß Hajo
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bild aus Link in Userform anzeigen


Schritt-für-Schritt-Anleitung

Um ein Bild aus einem Link in einer UserForm anzuzeigen, kannst du den folgenden VBA-Code verwenden. Dies funktioniert in Excel-Versionen, die VBA unterstützen.

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (ALT + F11).
  2. Füge eine UserForm hinzu, falls noch keine vorhanden ist.
  3. Platziere ein Bildsteuerelement (Image) auf der UserForm.
  4. Verwende den folgenden Code im AfterUpdate-Ereignis des entsprechenden Steuerelements (zum Beispiel nachname):
Private Sub nachname_AfterUpdate()
    Dim bildPfad As String
    bildPfad = ThisWorkbook.Path & "\" & nachname & ".jpg"

    If Dir(bildPfad) <> "" Then
        passfoto.Picture = LoadPicture(bildPfad)
    Else
        MsgBox "Bild nicht gefunden!"
    End If
End Sub
  1. Ersetze passfoto mit dem Namen des Bildsteuerelements, das du verwendet hast.
  2. Schließe den VBA-Editor und teste die UserForm.

Häufige Fehler und Lösungen

  • Fehler: Bild wird nicht angezeigt

    • Überprüfe, ob der Dateiname des Bildes genau mit dem Text in der Zelle übereinstimmt (z.B. Groß- und Kleinschreibung).
  • Fehler: "Bild nicht gefunden!"-Nachricht erscheint

    • Stelle sicher, dass das Bild im gleichen Verzeichnis wie die Excel-Datei gespeichert ist.
  • Fehler: VBA läuft nicht

    • Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu "Datei" > "Optionen" > "Trust Center" > "Einstellungen für das Trust Center" > "Makroeinstellungen".

Alternative Methoden

Falls du eine einfachere Methode bevorzugst, könntest du das Bild direkt in Excel verlinken, anstatt es in der UserForm zu laden. Das geht wie folgt:

  1. Füge ein Steuerelement (z.B. ein "Bild"-Objekt) direkt in das Arbeitsblatt ein.
  2. Verlinke dieses Bild mit einer Zelle, die den Pfad zum Bild enthält.

Du kannst die Zelle dann dynamisch ändern, um das angezeigte Bild zu aktualisieren.


Praktische Beispiele

Nehmen wir an, du hast eine Mitgliederliste mit Nachnamen in Spalte A und die Passfotos im gleichen Verzeichnis wie die Excel-Datei. Der Code, den du verwenden würdest, sieht so aus:

Private Sub nachname_AfterUpdate()
    Dim bildPfad As String
    bildPfad = ThisWorkbook.Path & "\" & nachname & ".jpg"

    If Dir(bildPfad) <> "" Then
        passfoto.Picture = LoadPicture(bildPfad)
    Else
        MsgBox "Bild nicht gefunden!"
    End If
End Sub

Wenn du nun einen Nachnamen eingibst, wird automatisch das entsprechende Bild geladen, sofern es existiert.


Tipps für Profis

  • Bildformate: Achte darauf, dass die Bilddateien im richtigen Format (z.B. .jpg, .png) gespeichert sind, da Excel nur bestimmte Formate unterstützt.
  • Fehlerbehandlung: Füge weitere Fehlerbehandlungen hinzu, um die Benutzererfahrung zu verbessern, z.B. das Anzeigen eines Platzhalters, wenn kein Bild vorhanden ist.
  • Performance: Wenn du viele Bilder laden musst, überlege, ob du eine andere Methode zur Leistungsoptimierung benötigst, wie z.B. das Laden von Bildern in Gruppen.

FAQ: Häufige Fragen

1. Wo muss ich den VBA-Code einfügen?
Du musst den Code in das entsprechende Ereignis deiner UserForm einfügen, zum Beispiel in das AfterUpdate-Ereignis eines Textfelds.

2. Funktioniert das auch mit Bildern aus dem Internet?
Ja, du kannst die URL des Bildes verwenden, aber du musst den Bildpfad entsprechend anpassen und sicherstellen, dass das Bild heruntergeladen wird, bevor du es lädst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige