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

Forumthread: Bild in Userform

Bild in Userform
21.08.2017 09:44:07
Hermelin
Hallo Zusammen
Ich möchte ein Bild in die User Form laden, die jedes mal das Bild des aktuellen User zeigt. Wie bringe ich das hin?
Bilder sind auf Festplatte in seperatem Verzeichnis gespeichert.
Wäre super wenn das jemand weiss.
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild in Userform
21.08.2017 09:53:20
ChrisL
Hi
Du könntest Environ("Username") (=Windows-Username) abfragen. Im Idealfall entspricht der Name der Bilddatei dem Usernamen, dann ist der Code kurz:
UserForm1.Image1.Picture = LoadPicture("C:\Pfad\" & Environ("Username"))
Ansonsten mittels separater Übersetzungstabelle oder so...
Private Sub UserForm_Initialize()
Dim strPicFile As String
Select Case Environ("Username")
Case "Meier": strPicFile = "HansMeier.jpg"
Case "Müller": strPicFile = "AnnaMeier.jpg"
Case Else
MsgBox "kein Bild vorhanden."
Exit Sub
End Select
UserForm1.Image1.Picture = LoadPicture("C:\Pfad\" & strPicFile)
End Sub
cu
Chris
Anzeige
AW: Bild in Userform
21.08.2017 11:13:06
Hermelin
Hi ChrisL
Danke für die schnelle Antwort. Irgendwie klappt das nicht bei mir.
Dieses Hier unter Initialize() klappt einwandfrei. Nur liest es mir den User nicht automatisch raus.
Image1.Picture = LoadPicture("\\Pfad\***.jpg")
Wie bringe ich den UserName hier automatisch rein oder was mach ich bei Deiner Version falsch?
Anzeige
AW: Bild in Userform
21.08.2017 11:20:49
ChrisL
Hi
Wie lauten die Dateinamen und wie lauten die Usernamen?
Vielleicht...
UserForm1.Image1.Picture = LoadPicture("C:\Pfad\" & Environ("Username") & ".jpg")
cu
Chris
AW: Bild in Userform
22.08.2017 10:13:51
Hermelin
Hallo ChrisL und Nepumulk
Sorry gestern nicht mehr dazu gekommen es zu testen und zu Antworten.
Hab den Code so eingebaut:
Private Sub UserForm_Initialize()
Dim tblDaten As Worksheet
Set tblDaten = Worksheets("Adressliste")
'Tiel der User Form
frm_Daten.Caption = Sheets("Adressliste").Cells(1, 1).Value
'Beschriftungen für die Bezeichnungsfelder aus Tabelle holen
With frm_Daten
.Label1.Caption = tblDaten.Cells(1, 1).Value
.Label2.Caption = tblDaten.Cells(1, 2).Value
.Label3.Caption = tblDaten.Cells(1, 3).Value
.Label4.Caption = tblDaten.Cells(1, 4).Value
.ListBox1.ColumnCount = 6
.ListBox1.ColumnWidths = "50;250;250;250"
.TextBox1.SetFocus
End With
frm_Daten.Label42.Caption = frm_Daten.Label1.Caption
frm_Daten.Label43.Caption = frm_Daten.Label2.Caption
frm_Daten.Label44.Caption = frm_Daten.Label3.Caption
frm_Daten.Label45.Caption = frm_Daten.Label4.Caption
Const FOLDER_PATH As String = "Pfad\" 'Pfad zu den Bildern - anpassen !!!
Dim strPicturePath As String
strPicturePath = Dir$(FOLDER_PATH & Environ$("USERNAME") & ".jpg")
If strPicturePath = vbNullString Then
Call MsgBox("Kein Bild vorhanden.", vbExclamation, "Hinweis")
Else
Set Image2.Picture = LoadPicture(FOLDER_PATH & strPicFile)
End If
' Dieser Teil dient dazu, dass Textbox6 aktiv wird beim öffnen der UserForm
TextBox6.SetFocus
End Sub
Leider startet die frm_Daten nicht mehr kommt zu Fehlermeldung.
Anzeige
AW: Bild in Userform
22.08.2017 16:30:55
ChrisL
Hi
Ich nehme an die Fehlermeldung lautet "kein Bild vorhanden"?
Kann eigentlich nur heissen, dass der Pfad falsch ist. Ich tippe du hast den letzten Backslash vergessen.
Ansonsten könntest du die Bilddateien zum Quercheck mal lokal (kein Serververzeichnis wegen Berechtigungen und so) ablegen.
Und den Pfad zur Überprüfung mal in einer MsgBox ausgeben.
...
Dim strPicturePath As String
MsgBox FOLDER_PATH & Environ$("USERNAME") & ".jpg"
Exit Sub
strPicturePath = Dir$(FOLDER_PATH & Environ$("USERNAME") & ".jpg")
...
cu
Chris
Anzeige
AW: Bild in Userform
21.08.2017 12:21:14
Nepumuk
Hallo Hermelin,
teste mal:
Private Sub UserForm_Initialize()
    Const FOLDER_PATH As String = "C:\Ordner\" 'Pfad zu den Bildern - anpassen !!!
    Dim strPicturePath As String
    strPicturePath = Dir$(FOLDER_PATH & Environ$("USERNAME") & ".jpg")
    If strPicturePath = vbNullString Then
        Call MsgBox("Kein Bild vorhanden.", vbExclamation, "Hinweis")
    Else
        Set Image1.Picture = LoadPicture(FOLDER_PATH & strPicFile)
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Bild in Userform
22.08.2017 10:28:11
Hermelin
Guten Morgen Nepumuk
Ich habe es nun noch versucht mit einer ganz neuen Datei und hab Dein VBA eingefügt.
Leider kommt hier "nur noch" die Fehlermeldung, dass er kein Bild findet obwohl es am richtigen Ort (Pfad) und das Bild mit dem Usernamen benannt ist.
Hast Du noch einen Tip?
AW: Bild in Userform
22.08.2017 10:32:32
Nepumuk
Hallo Hermelin,
als Pfad hast du das angegeben:
"Pfad\"
so einen Pfad gibt es in Windows nicht. Öffne den Ordner in dem sich die Bilder befinden und kopiere den Pfad aus der Adressleiste. Vergiss aber nicht den letzten Backslash.
Gruß
Nepumuk
Anzeige
AW: Bild in Userform
22.08.2017 11:06:38
Hermelin
Hi Nepumuk
Nein, ich habe wie Du geschrieben hast, den Pfad aus der Adressleiste herauskopiert, dennoch will er nicht wie ich und kommt mit der Fehlermeldung und wenn ich es in der bestehenden UserForm "frm_Daten" laufen lasse würgt es mir alles ab und die frm_Daten UserForm kommt nicht mal mehr ins laufen.
Anzeige
AW: Bild in Userform
22.08.2017 11:12:20
Nepumuk
Hallo Hermelin,
kannst du mal eine Mustermappe hochladen die nur das Userform beinhaltet? Einfach parallel zu der Mappe eine neue öffnen und das Userform im VBA-Editor per Drag & Drop im Projektexploer in die neue Mappe ziehen.
Gruß
Nepumuk
AW: Bild in Userform
22.08.2017 11:30:09
Hermelin
Hi Nepumuk
Hat geklappt
Mit der Formel von ChrisL hat es funktioniert. Ich Depp hab vergessen seine zu testen. Sorry ChrisL.
frm_Daten.Image2.Picture = LoadPicture("Pfad\" & Environ("Username") & ".jpg")
Kannst Du mir noch helfen, was ich eingeben muss, damit, wenn der User kein Bild möchte nicht immer eine Fehlermeldung kommt, da nichts gefunden wird?
Geht dies oder einfacher mit einer Mustermappe?
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bild in Userform einfügen


Schritt-für-Schritt-Anleitung

Um ein Bild in eine Userform einzufügen, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor in Excel. Das kannst du tun, indem du die Tastenkombination ALT + F11 drückst.

  2. Erstelle eine neue Userform: Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt, wähle Einfügen und dann UserForm.

  3. Füge ein Bildsteuerelement hinzu: Wähle das Bildsteuerelement aus der Toolbox aus und ziehe es auf die Userform.

  4. VBA-Code hinzufügen: Klicke mit der rechten Maustaste auf die Userform und wähle Code anzeigen. Füge den folgenden Code in das UserForm_Initialize-Ereignis ein:

    Private Sub UserForm_Initialize()
       Const FOLDER_PATH As String = "C:\Pfad\" 'Pfad zu den Bildern - anpassen !!!
       Dim strPicFile As String
       strPicFile = Environ("USERNAME") & ".jpg" 'Dateinamen basierend auf dem Windows-Benutzernamen
    
       If Dir(FOLDER_PATH & strPicFile) = "" Then
           MsgBox "Kein Bild vorhanden."
       Else
           Image1.Picture = LoadPicture(FOLDER_PATH & strPicFile)
       End If
    End Sub
  5. Passe den Pfad an: Stelle sicher, dass der Pfad zu den Bildern korrekt ist und die Bilder den Benutzernamen als Dateinamen haben.


Häufige Fehler und Lösungen

  • Fehler: "Kein Bild vorhanden."

    • Lösung: Überprüfe den Pfad, den du im Code angegeben hast. Stelle sicher, dass der Pfad korrekt ist und dass die Bilddateien im angegebenen Verzeichnis vorhanden sind.
  • Fehler: UserForm startet nicht

    • Lösung: Achte darauf, dass der Code im UserForm_Initialize-Ereignis korrekt eingefügt wurde. Überprüfe auch, ob es andere Fehler im Code gibt, die das Laden der Userform verhindern könnten.
  • Fehler: Bild wird nicht angezeigt

    • Lösung: Stelle sicher, dass das Bildsteuerelement korrekt benannt ist (z.B. Image1) und dass die Dateiendung im Code korrekt angegeben ist.

Alternative Methoden

Wenn du die Methode mit dem Environ("USERNAME") nicht nutzen möchtest, kannst du auch eine separate Übersetzungstabelle erstellen, in der die Benutzernamen den Bilddateinamen zugeordnet werden. Hier ein Beispiel:

Private Sub UserForm_Initialize()
    Dim strPicFile As String
    Select Case Environ("USERNAME")
        Case "Meier": strPicFile = "HansMeier.jpg"
        Case "Müller": strPicFile = "AnnaMüller.jpg"
        Case Else: strPicFile = "default.jpg" 'Ein Standardbild
    End Select
    Image1.Picture = LoadPicture("C:\Pfad\" & strPicFile)
End Sub

Praktische Beispiele

Hier sind einige Beispiele, wie du das Bild in der Userform erfolgreich einfügen kannst:

  1. Ein Bild basierend auf dem Windows-Benutzernamen:

    Image1.Picture = LoadPicture("C:\Bilder\" & Environ("USERNAME") & ".jpg")
  2. Ein Bild aus einer festgelegten Liste:

    Select Case Environ("USERNAME")
       Case "Max": Image1.Picture = LoadPicture("C:\Bilder\Max.jpg")
       Case "Lisa": Image1.Picture = LoadPicture("C:\Bilder\Lisa.jpg")
    End Select

Tipps für Profis

  • Testen des Bildpfads: Verwende eine MsgBox, um den vollständigen Pfad des Bildes auszugeben, um sicherzustellen, dass der Pfad korrekt ist.

    MsgBox "Bildpfad: " & FOLDER_PATH & Environ("USERNAME") & ".jpg"
  • Error Handling: Füge Fehlerbehandlungsroutinen hinzu, um spezifische Fehlermeldungen zu geben, falls etwas schiefgeht:

    On Error GoTo ErrorHandler
    ' Dein Code hier
    Exit Sub
    
    ErrorHandler:
    MsgBox "Fehler: " & Err.Description

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Benutzer kein Bild möchte? Du kannst einfach eine Bedingung im Code hinzufügen, die prüft, ob das Bild existiert, bevor du versuchst, es zu laden. Zum Beispiel:

If Dir(FOLDER_PATH & strPicFile) <> "" Then
    Image1.Picture = LoadPicture(FOLDER_PATH & strPicFile)
End If

2. Was mache ich, wenn der Pfad zu den Bildern nicht funktioniert? Stelle sicher, dass der Pfad korrekt ist. Du kannst auch den Pfad aus der Adressleiste des Windows-Explorers kopieren und den letzten Backslash nicht vergessen.

3. Wie kann ich das Bild in einer anderen Userform anzeigen? Stelle sicher, dass du den richtigen Namen für das Bildsteuerelement in der entsprechenden Userform verwendest und den Code entsprechend anpasst.

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