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

Image aus Tabellenblatt in Userform

Forumthread: Image aus Tabellenblatt in Userform

Image aus Tabellenblatt in Userform
Semler
Hallo Zusammen!
Hab ein kleines Problem und hoffe das mir einer helfen kann.
Ich würde gerne aus mehreren images aus einem Tabellenblatt genau eines auswählen und in einer userform anzeigen lassen.
Ich hatte mir einen kleinen test zusammen geschrieben aber das klappt leider nicht so einfach wie ich gedacht hatte:
Private Sub F6893_Click()
Dim name As String
Dim wks As String
name = "FT" & F6893.Caption 'das soll der Name des images in dem Tabellenblatt sein. Natürlich   _
_
variabel und nicht statisch wie hier
wks = "Grafiken"
If F6893 = True Then
Image1.Picture = ThisWorkbook.Worksheets(wks).name.Picture 'Wenn statt der variable der  _
wirkliche Name des images steht klappt es.
End If ' soll nur ein test sein ob es überhaupt funktioniert :)
End Sub

Ich hoffe einer hat eine Lösung. Danke
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Image aus Tabellenblatt in Userform
Nepumuk
Hallo,
ein stark verkürztes Beispiel:
Private Sub Image1_Click()
    Image1.Picture = CallByName(Tabelle1, "Image1", VbGet).Picture
    Repaint
End Sub

Der Objektname der Tabelle ist Tabelle1 der Name des Image-Controls in Tablle1 ist Image1. Versuch es mal selbst.
Gruß
Nepumuk
Anzeige
AW: Image aus Tabellenblatt in Userform
24.05.2012 22:12:14
Semler
Super Geil! Klappt Tadellos! Vielen vielen DANK!
AW: Image aus Tabellenblatt in Userform
24.05.2012 23:17:01
fcs
Hallo Semler,
Alternative zum Vorschlag von Nepomuk:
  Me.Image1.Picture = Worksheets("Grafiken").OLEObjects(strImageObjName).Object.Picture

Gruß
Franz
;
Anzeige
Anzeige

Infobox / Tutorial

Image aus Tabellenblatt in Userform anzeigen


Schritt-für-Schritt-Anleitung

Um ein Bild aus einem Tabellenblatt in einer Userform anzuzeigen, kannst du folgende Schritte befolgen:

  1. Userform erstellen: Öffne den Visual Basic for Applications (VBA) Editor und füge eine neue Userform hinzu.

  2. Bild-Steuerelement hinzufügen: Füge ein Image-Steuerelement (Image1) zu deiner Userform hinzu.

  3. Steuerelement konfigurieren: Stelle sicher, dass das Bild-Steuerelement in der Userform die richtige Größe hat, um das Bild anzuzeigen.

  4. VBA-Code einfügen: Füge den folgenden Code in das Code-Modul deiner Userform ein:

    Private Sub F6893_Click()
       Dim name As String
       Dim wks As String
       name = "FT" & F6893.Caption ' Der Name des Bildes
       wks = "Grafiken"
       If F6893 = True Then
           Image1.Picture = ThisWorkbook.Worksheets(wks).OLEObjects(name).Object.Picture
       End If
    End Sub
  5. Testen: Starte die Userform und klicke auf das Steuerelement F6893, um das Bild anzuzeigen.


Häufige Fehler und Lösungen

  • Bild wird nicht angezeigt: Stelle sicher, dass der Name des Bildes im Tabellenblatt korrekt ist. Überprüfe auch den Namen des Arbeitsblatts, in dem das Bild gespeichert ist.
  • Fehlermeldung beim Laden: Achte darauf, dass das Bild tatsächlich im angegebenen Bereich vorhanden ist. Ein falsch eingegebener Name führt oft zu Fehlern.
  • Bild nicht gefunden: Wenn die Variable name nicht richtig gesetzt ist, wird das Bild nicht gefunden. Überprüfe, ob die Bezeichnung des Bildes korrekt ist.

Alternative Methoden

Eine andere Möglichkeit, ein Bild aus einem Tabellenblatt in der Userform anzuzeigen, besteht darin, die CallByName-Funktion zu verwenden. Hier ist ein Beispiel:

Private Sub Image1_Click()
    Image1.Picture = CallByName(Tabelle1, "Image1", VbGet).Picture
    Repaint
End Sub

In diesem Beispiel wird das Bild direkt aus der Tabelle Tabelle1 geladen. Achte darauf, dass du den Namen des Bildes und der Tabelle korrekt angibst.


Praktische Beispiele

  1. Ein einfaches Beispiel: Angenommen, du hast ein Bild mit dem Namen "MeinBild" in einem Arbeitsblatt namens "Grafiken". Der Code zum Laden des Bildes könnte wie folgt aussehen:

    Private Sub F6893_Click()
       Image1.Picture = Worksheets("Grafiken").OLEObjects("MeinBild").Object.Picture
    End Sub
  2. Dynamisches Laden von Bildern: Wenn du eine Liste von Bildern hast, kannst du den Namen dynamisch festlegen. Wenn du z.B. die Bildnamen in einer ComboBox speicherst, kannst du den Namen aus der ComboBox verwenden:

    Private Sub cmbImages_Change()
       Image1.Picture = Worksheets("Grafiken").OLEObjects(cmbImages.Value).Object.Picture
    End Sub

Tipps für Profis

  • Bilder in der Tabelle organisieren: Achte darauf, dass alle Bilder in einem separaten Arbeitsblatt gespeichert sind, um die Übersichtlichkeit zu verbessern.

  • Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung, um mögliche Laufzeitfehler abzufangen. Zum Beispiel:

    On Error Resume Next
    Image1.Picture = Worksheets("Grafiken").OLEObjects(name).Object.Picture
    If Err.Number <> 0 Then
       MsgBox "Bild konnte nicht geladen werden!"
    End If
    On Error GoTo 0
  • Optimierung der Bildgröße: Überprüfe die Größe der Bilder im Arbeitsblatt, um sicherzustellen, dass sie optimal in das Image-Steuerelement passen.


FAQ: Häufige Fragen

1. Wie lade ich ein Bild, das nicht in einem OLE-Objekt gespeichert ist? Wenn dein Bild nicht als OLE-Objekt gespeichert ist, kannst du das Bild direkt über den Pfad laden:

Image1.Picture = LoadPicture("C:\Pfad\zum\Bild.jpg")

2. Was mache ich, wenn das Bild nicht angezeigt wird? Überprüfe zuerst den Namen des Bildes und den Arbeitsblattnamen. Stelle sicher, dass das Bild in der richtigen Tabelle vorhanden ist und dass der Code keine Fehler aufweist.

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