Anzeige
Archiv - Navigation
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
712to716
712to716
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Bilder in UserForm
22.12.2005 20:18:28
Ernst
Guten Abend Forum
Könnte mir jemand helfen mein Makro unten zu vervollständigen?
In einer UserForm der Arbeitsmappe “xy“ befindet sich ein Listenfeld wo Bilder eingetragen sind. Nach anwählen des Bildnamens (z.B. Boden gegen Aussenluft) soll das Bild in der UserForm angezeigt werden. Durch betätigen des CommandButtons soll das ausgewählte Bild in die Zelle A10 eingefügt werden.
Die Bilder (picBA1, picBa2, picBA3, etc.) befinden sich im Verzeichnis C:\Daten\Bilder.xls
Wo komme ich nicht weiter:
1.) Mit dem Code unten stimmt was nicht
2.) Wie müsste der Code im CommandButton lauten um das ausgewählte Bild in die aktive Arbeitsmappe der Zelle A10 einzufügen?
Für eine Antwort bin ich dankbar.
Mit freundlichen Grüßen
Ernst Dunkel

Private Sub UserForm_Initialize()
With lst_Boden
.AddItem "Boden gegen Aussenluft"
.AddItem "Boden gegen unbeheizt"
.AddItem "Boden gegen Erdreich"
End With
End Sub


Private Sub lst_Boden_Click()
Dim strBild, strOpen As String
strBild = "C:\Daten\Bilder.xls"
strOpen = myOpen(strBild)
Select Case lst_Boden.ListIndex
Case 0
img.Picture = LoadPicture(strBild & "\picBA1")
Case 1
img.Picture = LoadPicture(strBild & "\picBA2")
Case 2
img.Picture = LoadPicture(strBild & "\picBA3")
End Select
End Sub

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bilder in UserForm
22.12.2005 20:30:29
Hajo_Zi
Hallo Ernst,
ActiveSheet.Shapes.AddPicture(StBild, True, True, Range("A10").Left, _
Range("A10").Top, 100, 100).Name = "Bild " & Range("A10").Address(False, False)
ich gehe mal davon aus das der Bildname auf der Variablen StBild steht.
Das Bild wird über der Zellle eingefügt.
Mal ohne Testung.


AW: Bilder in UserForm
22.12.2005 20:41:11
Josef
Hallo Ernst!
Da sind einige Ungereimtheiten in deinem Code!
Ungetestet, weil zu faul um nachzubauen;-))
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
Dim pic As Picture
If img.Tag <> "" Then
  Set pic = ActiveSheet.Pictures.Insert(img.Tag) 'Aus dem "Tag" des Images den Pfad auslesen
  With pic
    .Top = ActiveCell.Top
    .Left = ActiveCell.Left
  End With
  Set pic = Nothing
End If
End Sub


Private Sub UserForm_Initialize()
With lst_Boden
  .AddItem "Boden gegen Aussenluft"
  .AddItem "Boden gegen unbeheizt"
  .AddItem "Boden gegen Erdreich"
End With
End Sub




Private Sub lst_Boden_Click()
Dim strBild, strOpen As String
strBild = "C:\Daten\Bilder\" '<--- "C:\Daten\Bilder.xls" ist kein Ordner!
'strOpen = myOpen(strBild) <--- Was ist das?

If lst_Boden.ListIndex > -1 Then
  strOpen = strBild & "picBA" & lst_Boden.ListIndex + 1 & ".jpg" '<-- Dateiendung fehlte bei dir!
  If Dir(strOpen) <> "" Then 'ggf. ändern in ".gif" oder ".bmp" oder ...
    img.Picture = LoadPicture(strOpen)
    img.Tag = strOpen 'in der "Tag" Eigenschaft des Image-Steuerelementes den Pfad speichern
  Else
    img.Tag = ""
    img.Picture = LoadPicture("")
  End If
End If

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Bilder in UserForm
22.12.2005 21:20:37
Ernst
Hallo Sepp
Vielen Dank für deine Hilfe.
Die Bilder befinden sich alle in der Datei (C:\Daten\Bilder.xls) der Arbeitsmappe "Bilder.xls" und sind dort angeschrieben mit picBA1, picBA2, etc. (Ich habe die Bilder in der Datei Bilder.xls so benannt!). Krieg ich jetzt nicht ein Problem in der Zeile mit:
strOpen = strBild & "picBA" & lst_Boden.ListIndex + 1 & ".jpg"
Unter C:\Daten\Bilder.xls
Danke: Bilder in UserForm
22.12.2005 22:14:07
Ernst
Hallo Sepp / Hajo
Vielen Dank für Eure Hilfe. Es funktioniert so wie ich es mir gewünscht habe.
mit freundlichen Grüssen
Ernst dunkel
AW: Bilder in UserForm
22.12.2005 23:08:44
Josef
Hallo Ernst!
Warum hast du die Bilder in einer Datei?
Wenn du sie in einem Ordner hättest, dann würde mein Code genügen!
Um die Bilder aus der Datei zu exdrahieren, muss man
  • das Bild kopieren

  • in ein Diagramm einfügen

  • in einem Temporären Verzeichnis speichern

  • in das Image einfügen und die Temporäre Datei wieder löschen

  • Möglich ist es, aber ein bisschen von hinten durch die Brust ins Auge;-))
    Denk nochmal darüber nach.
    '******************************
    '* Gruß Sepp
    '*
    '* Rückmeldung wäre nett!
    '******************************

    Anzeige
    AW: Bilder in UserForm
    23.12.2005 07:48:54
    Ernst
    Hallo Sepp
    Du hast recht, ich hab es erst gemerkt als ich es ausprobiert hatte.
    Noch ein kleines Problem habe ich, wenn ich mehrere male die Bilder in der gleichen Zelle einfüge, werden die schon eingefügten Bilder über deckt und nicht gelöscht!
    Kannst du mir da auch weiter helfen?
    Mit freundlichen Grüßen
    Ernst Dunkel
    AW: Bilder in UserForm
    23.12.2005 09:08:24
    Hajo_Zi
    Hallo Ernst,
    mein Beispiel hast Du Dir schon angesehen?
    Gruß Hajo
    Danke
    23.12.2005 11:31:21
    Ernst
    Hallo Hajo
    Vielen Dank für Deine Bemühung.
    Ich hatte es gesehen, aber nicht begriffen.
    mfg
    Ernst Dunkel
    Anzeige
    AW: Bilder in UserForm
    23.12.2005 09:30:15
    Josef
    Hallo Ernst!
    Geht auch!
    Beim Einfügen wird dem Bild ein eindeutiger Name vergeben und dieses beim
    erneuten Einfügen, soweit vorhanden, zuvor geöscht!
    Option Explicit

    Private Sub CommandButton1_Click()
    Dim pic As Picture
    If img.Tag <> "" Then
      On Error Resume Next
      ActiveSheet.Shapes("pic" & ActiveCell.Address(0, 0)).Delete
      On Error GoTo 0
      Set pic = ActiveSheet.Pictures.Insert(img.Tag) 'Aus dem "Tag" des Images den Pfad auslesen
      With pic
        .Name = "pic" & ActiveCell.Address(0, 0)
        .Top = ActiveCell.Top
        .Left = ActiveCell.Left
      End With
      Set pic = Nothing
    End If
    End Sub



    Private Sub UserForm_Initialize()
    With lst_Boden
      .AddItem "Boden gegen Aussenluft"
      .AddItem "Boden gegen unbeheizt"
      .AddItem "Boden gegen Erdreich"
    End With
    End Sub





    Private Sub lst_Boden_Click()
    Dim strBild, strOpen As String
    strBild = "C:\Daten\Bilder\" '<--- "C:\Daten\Bilder.xls" ist kein Ordner!
    'strOpen = myOpen(strBild) <--- Was ist das?

    If lst_Boden.ListIndex > -1 Then
      strOpen = strBild & "picBA" & lst_Boden.ListIndex + 1 & ".jpg" '<-- Dateiendung fehlte bei dir!
      If Dir(strOpen) <> "" Then 'ggf. ändern in ".gif" oder ".bmp" oder ...
        img.Picture = LoadPicture(strOpen)
        img.Tag = strOpen 'in der "Tag" Eigenschaft des Image-Steuerelementes den Pfad speichern
      Else
        img.Tag = ""
        img.Picture = LoadPicture("")
      End If
    End If

    End Sub


    '******************************
    '* Gruß Sepp
    '*
    '* Rückmeldung wäre nett!
    '******************************

    Anzeige
    Vielen Dank: Bilder in UserForm
    23.12.2005 11:37:15
    Ernst
    Hallo Sepp
    Funktioniert super, dieser Beitrag ist was fürs Archiv!
    Wünsche Dir schöne Weihnachten.
    Mit freundlichen Grüßen
    Ernst Dunkel

    304 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige