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

Forumthread: Bild aus Tabelle in Userform

Bild aus Tabelle in Userform
22.11.2016 13:34:52
Captain
Hi,
ich habe in meiner Tabelle 9 ImageControls (Entwicklertools - Steuerelemente -) und dort entsprechend Bilder.
Jetzt möchte ich gerne per Code die Bilder in die Userform reinladen.
Leider aber funzt das nicht. Der Code bricht in dem Moment ab, wenn Excel das Bild in die Userform alden sollte.
Ich rufe die Prozedur auf mit:

Sub Bild1_laden()
iPic = "IMG_9463"
UF_Pics.Show
End Sub

auszuführender Code:

Private Sub UserForm_Activate()
With Frame1
.ScrollBars = fmScrollBarsBoth
.ScrollHeight = .InsideHeight * 2
.ScrollWidth = .InsideWidth * 9
End With
With Me.Bilderrahmen
.Picture = Worksheets("Pics").iPic.Picture
.BorderStyle = fmBorderStyleNone
.PictureAlignment = fmPictureAlignmentTopLeft
.PictureSizeMode = fmPictureSizeModeClip
End With
End Sub
Was mache ich falsch?
Ich muss die Bilder leider in der Mappe mitschicken, sonst würde ich es anders machen.
Danke
Jack
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bild aus Tabelle in Userform
22.11.2016 14:13:23
baschti007
So ?
UserForm1.Image1.Picture = Tabelle1.Image1.Picture
Gruß Basti
AW: Bild aus Tabelle in Userform
22.11.2016 14:15:09
Captain
Hi Basti,
ja ein einzelnes Bild im Befehl funktioniet einwandfrei:
With Me.Bilderrahmen
.Picture = Worksheets("Pics").IMG_9464.Picture
....
Aber diese übergebende Variable "iPic" mag Excel scheinbar nicht :-(
Ich hab ja 9
Anzeige
AW: Bild aus Tabelle in Userform
22.11.2016 14:24:14
baschti007
Sonst musst du mal eine Bsp Datei hochladen
Gruß basti
AW: Bild aus Tabelle in Userform
22.11.2016 14:25:13
Captain
Ok,
nachdem das mit der Variable nicht funzt, habe ich jetzt ne IF-Schleife genommen - snd ja nur 9

Sub Bild1_laden()
iPic = "1"
UF_Pics.Show
End Sub

If iPic = "1" Then
.Picture = Worksheets("Pics").IMG_9463.Picture
ElseIf iPic = "2" Then
.Picture = Worksheets("Pics").IMG_9464.Picture
ElseIf iPic = "3" Then
.Picture = Worksheets("Pics").IMG_9466.Picture
ElseIf iPic = "4" Then
.Picture = Worksheets("Pics").IMG_9467.Picture
ElseIf iPic = "5" Then
.Picture = Worksheets("Pics").IMG_9470.Picture
ElseIf iPic = "6" Then
.Picture = Worksheets("Pics").IMG_9477.Picture
ElseIf iPic = "7" Then
.Picture = Worksheets("Pics").IMG_9480.Picture
ElseIf iPic = "8" Then
.Picture = Worksheets("Pics").IMG_9481.Picture
ElseIf iPic = "9" Then
.Picture = Worksheets("Pics").IMG_9479.Picture
End If
Nicht schön, nicht fein, aber funzt.
Danke dennoch
Jack
Anzeige
AW: Bild aus Tabelle in Userform
22.11.2016 14:29:01
baschti007
Hey dann lieber so in deiner schleife wo die variablen durchlaufen
.Picture = Worksheets("Pics").shape(Hier deine Variable).Picture
Gruß Basti
AW: Bild aus Tabelle in Userform
22.11.2016 15:37:49
Nepumuk
Hallo,
so geht's:
.Picture = Worksheets("Pics").OLEObjects(iPic).Object.Picture

Gruß
Nepumuk
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Bilder aus Tabellen in Userforms laden


Schritt-für-Schritt-Anleitung

Um ein Bild aus einem Tabellenblatt in eine Userform einzufügen, kannst du die folgenden Schritte befolgen:

  1. Userform erstellen:

    • Öffne den VBA-Editor mit ALT + F11.
    • Füge eine neue Userform hinzu und platziere ein Image-Control darauf.
  2. Bilder in der Tabelle speichern:

    • Stelle sicher, dass deine Bilder in einem Arbeitsblatt (z.B. "Pics") gespeichert sind. Die Bilder sollten als OLE-Objekte oder in einem Image-Control auf dem Arbeitsblatt sein.
  3. VBA-Code hinzufügen:

    • Füge den folgenden Code in die Userform ein, um Bilder basierend auf einer Variablen zu laden:
    Private Sub UserForm_Activate()
       Dim iPic As String
       iPic = "IMG_9463" ' Beispielname des Bildes
       Me.Bilderrahmen.Picture = Worksheets("Pics").OLEObjects(iPic).Object.Picture
    End Sub
  4. Userform anzeigen:

    • Rufe die Userform in deinem Hauptmodul auf:
    Sub Bild1_laden()
       UF_Pics.Show
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Bild wird nicht angezeigt:

    • Stelle sicher, dass der Name des Bildes korrekt ist. Wenn du eine Variable verwendest, überprüfe, ob die Variable den richtigen Wert hat.
  • Fehler: Laufzeitfehler beim Laden des Bildes:

    • Überprüfe, ob das Bild tatsächlich in der Tabelle vorhanden ist. Der Code kann fehlschlagen, wenn das Bild nicht gefunden wird.
  • Problem mit dem Zugriff auf Bilder:

    • Wenn du eine Schleife oder Variablen verwendest, stelle sicher, dass du die richtige Syntax verwendest, um auf das Bild zuzugreifen. Ein Beispiel wäre:
    .Picture = Worksheets("Pics").OLEObjects(iPic).Object.Picture

Alternative Methoden

Es gibt verschiedene Möglichkeiten, Bilder in Userforms zu laden:

  • Direktes Laden von Shapes: Du kannst Shapes verwenden, um Bilder zu laden, anstatt mit OLEObjects zu arbeiten:

    .Picture = Worksheets("Pics").Shapes(iPic).Picture
  • Verwendung von IF-Schleifen: Wenn du nur eine begrenzte Anzahl an Bildern hast, kann eine IF-Schleife eine einfache Lösung sein. Beispiel:

    If iPic = "1" Then
      .Picture = Worksheets("Pics").IMG_9463.Picture
    ElseIf iPic = "2" Then
      .Picture = Worksheets("Pics").IMG_9464.Picture
    End If

Praktische Beispiele

Nehmen wir an, du möchtest mehrere Bilder in deine Userform laden. Hier ist ein Beispiel, wie du dies mit einer Schleife tun kannst:

Sub Bild1_laden()
    Dim iPic As Integer
    For iPic = 1 To 9
        Me.Bilderrahmen.Picture = Worksheets("Pics").OLEObjects("IMG_946" & iPic).Object.Picture
        Me.Show
    Next iPic
End Sub

In diesem Beispiel wird jedes Bild in der Userform nacheinander angezeigt.


Tipps für Profis

  • Objektverwaltung: Halte deine Bilder gut organisiert in der Tabelle, um den Zugriff zu erleichtern.
  • Verwendung von Arrays: Du kannst auch Arrays verwenden, um Bilder effizienter zu verwalten und zu laden.
  • Fehlerbehandlung: Implementiere Fehlerbehandlung, um sicherzustellen, dass dein Code auch bei nicht vorhandenen Bildern stabil bleibt.

FAQ: Häufige Fragen

1. Wie lade ich mehrere Bilder gleichzeitig in meine Userform? Du kannst eine Schleife verwenden, um nacheinander Bilder zu laden. Siehe das praktische Beispiel oben.

2. Was mache ich, wenn mein Bild nicht angezeigt wird? Überprüfe den Namen des Bildes und stelle sicher, dass es sich im richtigen Arbeitsblatt befindet.

3. Kann ich Bilder aus einer anderen Arbeitsmappe laden? Ja, du kannst die Bilder aus einer anderen Arbeitsmappe laden, indem du den Pfad zur Arbeitsmappe angibst.

4. Welche Excel-Version benötige ich für diese Funktion? Dieser Code ist mit Excel VBA in den Versionen 2010 und höher kompatibel.

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