Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Shape in Userform Picture

Forumthread: Shape in Userform Picture

Shape in Userform Picture
16.11.2002 05:17:50
Joerg
Hallo Leute
ich habe ein Userform mit einem Image1. In dieses Image wuerde ich gerne, ein in einem Tabellenblatt befindliches Shape, einfuegen. Wie muesste mein Code dafuer in UserForm_Initialize()lauten?
Userform1.Image1.Picture = LoadPicture(Shapes(1).Value) geht nicht.

Gruss
Joerg

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Shape in Userform Picture
16.11.2002 09:50:06
Nepumuk
Hallo Joerg,
kann nicht funktionieren, da ein Image-Steuerelement nur wenige, verschiedene Bildformate anzeigen kann. Du könntest dein Shape als GIF-Datei zwischenspeichern und dieses GIF-Bild dann in das Image laden. Wenn du Interesse hast, ich habe ein Programm mit dem man einen Tabellenblattbereich als GIF-Bild speichern kann.
Gruß
Nepumuk
Anzeige
Re: Shape in Userform Picture
16.11.2002 16:05:26
Joerg
hallo Nepumuk
danke fuer die Info. Ich wollte eigentlich in einer anderen Anwendung erstellten Zeichnungen, als Metafile in die Zwischenablage kopieren, in ein Tabellenblatt einfuegen, die Tabelle als Archiv speichern, denn bei Bedarf diese Zeichnung in einem Userform aufrufen, und dachte dieses Bildchen wird dann mit Shapes angesprochen. Wenn dafuer dein Programm mit dem Gif funktionieren wuerde, waere super.
Gruss
Joerg
Anzeige
Re: Shape in Userform Picture
16.11.2002 17:56:52
Nepumuk
Hallo Joerg,

den Code einfach mal in ein Modul einfügen und ausprobieren.

Dim container As Chart
Dim containerbok As Workbook
Dim Obnavn As String
Dim Sourcebok As Workbook

Function SelectArea() As String
Dim Internrange As Range
On Error GoTo Brutt
Set Internrange = Application.InputBox("Select " _
& "range to be photographed:", "Picture Selection", _
Selection.AddressLocal, Type:=8)
SelectArea = Internrange.Address
Exit Function
Brutt:
SelectArea = "A1"
End Function

Function sShortname(ByVal Orrginal As String) As String
Dim iii As Integer
sShortname = ""
For iii = 1 To Len(Orrginal)
If Mid(Orrginal, iii, 1) <> " " Then _
sShortname = sShortname & Mid(Orrginal, iii, 1)
Next
End Function

Private Sub ImageContainer_init()
Workbooks.Add (1)
ActiveSheet.Name = "GIFcontainer"
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Worksheets(1).Range("A1")
ActiveChart.Location Where:=xlLocationAsObject, _
Name:="GIFcontainer"
ActiveChart.ChartArea.ClearContents
Set containerbok = ActiveWorkbook
Set container = ActiveChart
End Sub

Sub MakeAndSizeChart(ih As Integer, iv As Integer)
Dim Hincrease As Single
Dim Vincrease As Single
Obnavn = Mid(ActiveChart.Name, Len(ActiveSheet.Name) + 1)
Hincrease = ih / ActiveChart.ChartArea.Height
ActiveSheet.Shapes(Obnavn).ScaleHeight Hincrease, _
msoFalse, msoScaleFromTopLeft
Vincrease = iv / ActiveChart.ChartArea.Width
ActiveSheet.Shapes(Obnavn).ScaleWidth Vincrease, _
msoFalse, msoScaleFromTopLeft
End Sub

Public Sub GIF_Snapshot()
Dim varReturn As Variant
Dim MyAddress As String
Dim SaveName As Variant
Dim MySuggest As String
Dim Hi As Integer
Dim Wi As Integer
Dim Suffiks As Long
Set Sourcebok = ActiveWorkbook
MySuggest = sShortname(ActiveSheet.Name)
ImageContainer_init
Sourcebok.Activate
MyAddress = SelectArea
If MyAddress <> "A1" Then
SaveName = Application.GetSaveAsFilename( _
initialfilename:=MySuggest _
& ".gif", fileFilter:="Gif Files (*.gif), *.gif")
Range(MyAddress).Select
Selection.CopyPicture Appearance:=xlScreen, _
Format:=xlBitmap
If SaveName = False Then
GoTo Avbryt
End If
If InStr(SaveName, ".") Then SaveName _
= Left(SaveName, InStr(SaveName, ".") - 1)
Selection.CopyPicture Appearance:=xlScreen, _
Format:=xlBitmap
Hi = Selection.Height + 4 'adjustment for gridlines
Wi = Selection.Width + 6 'adjustment for gridlines
containerbok.Activate
ActiveSheet.ChartObjects(1).Activate
MakeAndSizeChart ih:=Hi, iv:=Wi
ActiveChart.Paste
ActiveChart.Export Filename:=LCase(SaveName) & _
".gif", FilterName:="GIF"
ActiveChart.Pictures(1).Delete
Sourcebok.Activate
End If
Avbryt:
On Error Resume Next
Application.StatusBar = False
containerbok.Saved = True
containerbok.Close
End Sub

Gruß
Nepumuk

Anzeige
Re: Shape in Userform Picture
16.11.2002 18:10:24
Joerg
hallo Nepumuk
danke fuer cen Code, ich werde ihn mal ausprobieren. Aber so wie es aussieht werde ich wohl alle meine Bildchen in Gif abspeichern und dann in das Userform einladen.
Gruss
Joerg
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Shape in Userform Picture einfügen


Schritt-für-Schritt-Anleitung

  1. Shape vorbereiten: Du benötigst ein Shape auf einem Tabellenblatt, das du in ein Userform einfügen möchtest. Stelle sicher, dass das Shape korrekt benannt ist.

  2. GIF-Export: Da das Image-Steuerelement nur bestimmte Bildformate unterstützt, ist es ratsam, das Shape als GIF zu speichern. Du kannst den Code von Nepumuk verwenden, um ein Screenshot des Shapes zu erstellen und es als GIF zu speichern.

    Sub GIF_Snapshot()
       ' Dein Code hier
    End Sub
  3. UserForm erstellen: Füge ein Userform in deinem Excel-Projekt hinzu und platziere ein Image-Steuerelement (Image1).

  4. Code im UserForm_Initialize: Im Code-Editor des Userforms, füge den folgenden Code in die UserForm_Initialize-Methode ein:

    Private Sub UserForm_Initialize()
       UserForm1.Image1.Picture = LoadPicture("Pfad\zu\deinem\Bild.gif")
    End Sub
  5. Testen: Starte das Userform, um zu überprüfen, ob das Bild korrekt angezeigt wird.


Häufige Fehler und Lösungen

  • Bild wird nicht angezeigt: Stelle sicher, dass der Pfad zum GIF-Bild korrekt ist. Wenn das Bild nicht existiert oder der Pfad falsch ist, wird das Bild nicht geladen.

  • Falsches Bildformat: Das Image-Steuerelement unterstützt nur bestimmte Bildformate. Achte darauf, dass du dein Shape als GIF speicherst.


Alternative Methoden

Falls du keine GIF-Dateien verwenden möchtest, kannst du auch versuchen, das Shape als Metafile in die Zwischenablage zu kopieren und dann in das Userform einzufügen. Beachte jedoch, dass dies zusätzliche Schritte und möglicherweise eine andere Handhabung der Bilddaten erfordert.


Praktische Beispiele

  1. Einfaches Beispiel: Du hast ein Rechteck-Shape auf deinem Tabellenblatt und möchtest es in dein Userform einfügen. Speichere es als GIF und passe den Pfad in deinem UserForm_Initialize-Code an.

  2. Komplexe Shapes: Wenn du komplexere Shapes hast, die mehrere Formen kombinieren, kannst du die gleiche Methode verwenden, um sie als GIF zu speichern und dann in dein Userform zu laden.


Tipps für Profis

  • Optimierung der Bildgröße: Achte darauf, die Größe deines Shapes zu optimieren, bevor du es als GIF speicherst. Zu große Bilder können die Ladezeiten des Userforms verlangsamen.

  • Datei-Management: Halte deine GIF-Dateien in einem strukturierten Ordnersystem, um den Zugriff und das Laden in dein Userform zu erleichtern.


FAQ: Häufige Fragen

1. Kann ich andere Bildformate verwenden?
Nein, das Image-Steuerelement unterstützt nur wenige Formate. Es ist am besten, deine Bilder als GIF zu speichern.

2. Wie kann ich das Shape dynamisch ändern?
Du kannst den Code im UserForm_Initialize anpassen, um verschiedene Bilder basierend auf Benutzeraktionen oder Bedingungen zu laden.

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