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

Forumthread: Userform Bilder mit VBA einfügen

Userform Bilder mit VBA einfügen
Ulf
Hallo Ihr Excel-Profis,
Bilder im ExcelSheet einzufügen geht das wie folgt:
With ActiveSheet
Set bild_neu = ActiveSheet.Pictures.Insert(Zelle_Bild.Value)
bild_neu.Name = "P_Sizze"
End With
Nun möchte ich in einem UserForm unterschiedlich viele Bilder einfügen.
Gibt es dafür eine Analogie für Userform und Image?
Danke Ulf
Anzeige

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

Betreff
Benutzer
Anzeige
IMAGE-Objekt in Userform per VBA einfügen
26.10.2010 15:00:17
NoNet
Hallo Ulf,
in einem UserForm musst Du dazu zunächst ein leeres IMAGE-Objekt einfügen in das Du dann per Loadpicture(...) ein Bild von der Festplatte einfügst.
Hier ein Beispiel : In einem UserForm sollen per Schaltfläche 9 Bilder (angeordnet als 3x3 Gitter) eingefügt werden.
Erstelle dazu ein UserForm mit den 2 Schaltflächen cmdBilderHinzufuegen und _ cmdSchliessen. Weise diesen Schaltflächen im UF folgenden Code zu :

Private Sub cmdBilderHinzufuegen_Click()
'Code fügt 9 IMAGE-Objekte in das USerForm ein
'positioniert diese auf 3 x 3
'und fügt Bilder in diese IMAGE-Objekte ein
'26.10.2010, NoNet - www.excelei.de
Dim cnt As MSForms.Control, intT As Integer
For intT = 0 To 8
Set cnt = Me.Controls.Add("Forms.Image.1", "Img" & t, True)
cnt.Left = 20 + 80 * (intT Mod 3) 'horizontale Position - Abstand von links
cnt.Top = 10 + 80 * (intT \ 3)    'vertikale   Position - Abstand von oben
cnt.Width = 60                    'Breite des IMAGE-Objektes
cnt.Height = 60                   'Höhe   des IMAGE-Objektes
cnt.PictureSizeMode = fmPictureSizeModeZoom 'Bild Zoomen
'Nachfolgenden Bildpfad und Dateinamen bitte anpassen !!
cnt.Picture = LoadPicture("C:\Temp\Images\Image " & intT + 1 & ".jpg")  'Bild einfügen
Next
cmdBilderHinzufuegen.Enabled = False 'Schaltfläche deaktivieren
End Sub
Private Sub cmdSchließen_Click()
Unload Me 'Userform schließen
End Sub

Und so sieht das dann aus (zunächst das leere UserForm, dann bitte auf im Bild klicken) :

Gruß, NoNet
Anzeige
AW: IMAGE-Objekt in Userform per VBA einfügen
Ulf
Hallo NoNet
Kleinigkeit geändert und es klappt prima,
hab's für die Beschriftung erweitert mit
Set cnt = Me.Controls.Add("Forms.Label.1", "Lab" & intT, True)
und das klapp auch.
Danke für Eure schnelle und perfekte Hilfe!
Ulf
AW: IMAGE-Objekt in Userform per VBA einfügen
Ulf
bei so ner schellen und perfekten Antwort soll hier noch
etwas werbung sein
Excelianer schaut hier mal rein:
www.excelei.de
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
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

Bilder in Excel Userform mit VBA einfügen


Schritt-für-Schritt-Anleitung

Um ein Bild in eine Userform einzufügen, musst Du zuerst ein leeres Image-Objekt in deinem Userform erstellen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (ALT + F11).
  2. Erstelle ein neues Userform.
  3. Füge zwei Schaltflächen hinzu: cmdBilderHinzufuegen und cmdSchliessen.
  4. Füge den folgenden VBA-Code in das Userform ein:
Private Sub cmdBilderHinzufuegen_Click()
    Dim cnt As MSForms.Control, intT As Integer
    For intT = 0 To 8
        Set cnt = Me.Controls.Add("Forms.Image.1", "Img" & intT, True)
        cnt.Left = 20 + 80 * (intT Mod 3)
        cnt.Top = 10 + 80 * (intT \ 3)
        cnt.Width = 60
        cnt.Height = 60
        cnt.PictureSizeMode = fmPictureSizeModeZoom
        cnt.Picture = LoadPicture("C:\Temp\Images\Image " & intT + 1 & ".jpg")
    Next
    cmdBilderHinzufuegen.Enabled = False
End Sub

Private Sub cmdSchließen_Click()
    Unload Me
End Sub
  1. Stelle sicher, dass Du den Bildpfad in der LoadPicture-Funktion anpasst.

Häufige Fehler und Lösungen

  1. Bild wird nicht angezeigt: Überprüfe den Pfad zur Bilddatei. Stelle sicher, dass die Datei existiert und der Pfad korrekt ist.

  2. Userform bleibt leer: Stelle sicher, dass Du das Image-Objekt korrekt hinzugefügt hast und dass der Code zur Positionierung und zum Laden der Bilder korrekt ausgeführt wird.

  3. Schaltfläche funktioniert nicht: Vergewissere Dich, dass der Code im richtigen Bereich des Userforms platziert ist und dass Du die Schaltflächen richtig benannt hast.


Alternative Methoden

Eine alternative Methode, um Bilder in ein Userform einzufügen, besteht darin, die Bilder direkt im Userform zu speichern. Du kannst die Image-Steuerelemente verwenden, um Bilder zu speichern und darzustellen, ohne sie von der Festplatte zu laden. Dies ist besonders nützlich für festgelegte Logos oder Grafiken.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du ein Logo in dein Userform einfügen kannst. Ersetze den Bildpfad durch den Pfad zu deinem Logo:

Private Sub UserForm_Initialize()
    Me.Image1.Picture = LoadPicture("C:\Temp\Images\Logo.jpg")
End Sub

Das Bild wird jedes Mal angezeigt, wenn das Userform geöffnet wird. Dies ist nützlich, um ein Excel VBA Logo oder ein ähnliches Bild anzuzeigen.


Tipps für Profis

  • Nutze die fmPictureSizeMode-Eigenschaft, um die Darstellung der Bilder anzupassen. Experimentiere mit fmPictureSizeModeClip, wenn Du das Bild nicht verzerren möchtest.
  • Verwende Error-Handling in Deinem Code, um sicherzustellen, dass beim Laden der Bilder keine Laufzeitfehler auftreten.
  • Denke daran, dass Du auch mit Userform Eingabemasken arbeiten kannst, um die Benutzeroberfläche weiter anzupassen und benutzerfreundlicher zu gestalten.

FAQ: Häufige Fragen

1. Wie füge ich mehrere Bilder in einem Userform ein?
Du kannst eine Schleife verwenden, um mehrere Image-Objekte zu erstellen und Bilder in diese einzufügen, wie im obigen Beispiel gezeigt.

2. Kann ich Bilder in einer bestimmten Reihenfolge anzeigen?
Ja, Du kannst die Positionierung der Image-Objekte in der Schleife steuern, um sie in einer gewünschten Reihenfolge anzuzeigen.

3. Was ist der Unterschied zwischen einem Image-Objekt und einer PictureBox?
Ein Image-Objekt ist einfacher zu verwenden und eignet sich gut für die Anzeige von Bildern. Eine PictureBox bietet mehr Flexibilität, ist aber auch komplexer zu handhaben.

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