Bild aus Sheet in Userform einfügen!

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Matcher.

    Bild aus Sheet in Userform einfügen!

    Hallo,

    ich möchte aus einem Excel-Sheet Bilder in eine PictureBox einfügen. Gesteuert wird das Ganze über eine ComboBox per Case-Eigenschaft.

    Zur Zeit bekomme ich es nur hin, externe Bitmaps von der Festplatte aus zu laden und einzufügen:

    Visual Basic-Quellcode

    1. Case "2"
    2. WorkpiecePicture= "D:\...\...\2z_g.bmp"
    3. Picture2Box.Picture = LoadPicture(WorkpiecePicture)


    Mehr spuckt die VBA Hilfe auch nicht aus.
    Danke für eure Hilfe.

    Matcher
    naja, wenn ich jemandem die XLS zukommen lasse, hat er nicht die Bilder unter dem Pfad, deshalb will ich sie in die Datei mit auf ein Sheet packen und direkt von dort aus laden, sprich ohne externen Zugriff...

    Picture2Box.Picture = LoadPicture(Worksheets("Grafiken").Range("A1")) 'in dieser Zelle sitzt das Bildchen

    Problem: es geht damit nicht! (z.Zt.), weil ich keinen Code finde, der das hinbekommt....alle Beispiele im Netz laufen nur mit der Pfadangabe...

    Gruß
    Matcher

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Matcher“ ()

    Ich habe noch eine (wahrscheinlich die einzige) Möglichkeit gefunden über die Zwischenablage zu gehen.

    Allerdings kann ich weder mit:
    Clipboard.Clear

    noch mit:
    Application.CutCopyMode = False

    die Zwischenablage löschen, geschweige denn, dass ich mit:
    .GetFromClipboard
    irgendwelche Daten in meine Variable (Public WorkpiecePicture) bekomme

    Wenn ich parallel den Inhalt der Zwischenablage in Excel anschaue passiert da gar nichts, außer, dass ein kopiertes Bild dort nach .Copy abgelegt wird.

    Es muss doch damit eine Möglichkeit geben Bilder, Grafiken und ähnliche Objekte in dieses Userform zu kriegen. Ich fummel und probier jetzt schon tagelang an diesem Mist! X(

    Sorry, aber es nervt!
    Gruß
    Matcher
    Zwischenablage leeren

    Visual Basic-Quellcode

    1. Private Declare Function OpenClipboard Lib "user32" _
    2. (ByVal hwnd As Long) As Long
    3. Private Declare Function EmptyClipboard Lib "user32" () _
    4. As Long
    5. Private Declare Function CloseClipboard Lib "user32" () _
    6. As Long
    7. Sub Zwischenablage_leeren()
    8. If OpenClipboard(0&) <> 0 Then
    9. Call EmptyClipboard
    10. Call CloseClipboard
    11. End If
    12. End Sub


    Ich würde die Bilder in dem selben Pfad wie die XLS Datei vermuten und dann von diesem Laden.

    Du könntest auch versuchen die Bilder in einzelne Images anstatt Sheets zu legen und von diesen zu übernehmen.
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    Hallo,

    danke, aber leider funzt das nicht so richtig, es läuft zwar erstmal ohne Fehler durch, nur in der Zwischenablage tut sich gar nichts, da steht weiterhin alles drin.

    Ich habe auch bei vbarchiv.net/workshop/workshop23.php?seite=3
    etwas zu dem Thema gefunden. Beim Aufruf "Call OpenClipboard(Me.hwnd)" meckert er immer ".hwnd" an (Methode oder Datenobjekt nicht gefunden).

    Dabei habe ich die Funktion in einem Modul sogar als Public definiert. Wo liegt das Problem?

    Wenn ich (ByVal hwnd As Long) rausnehme, läuft es wenigstens durch.

    Wie soll ich die Bilder in Excel in einzelne Images legen?

    Gruß
    Matcher