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

Zwischenablage in Userform anzeigen und ...

Forumthread: Zwischenablage in Userform anzeigen und ...

Zwischenablage in Userform anzeigen und ...
01.10.2019 14:55:45
Thomas
Hallo
Ich möchte ein Bild aus der Zwischenablage in einer Userform anzeigen lassen und dieses in die Tabelle1 Zelle A1 schreiben.
Möchte dies über ein CommandButton realisieren.
Wie würde der Code dazu aussehen?
Danke für Eure Hilfe
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zwischenablage in Userform anzeigen und ...
01.10.2019 18:55:44
Nepumuk
Hallo Thomas,
im Prinzip so:
Private Sub CommandButton1_Click()
    Const FILE_PATH As String = "H:\Test.jpg"
    Dim objShape As Shape, objChartObject As ChartObject
    Dim objWorksheet As Worksheet
    Application.ScreenUpdating = False
    Set objWorksheet = ThisWorkbook.Worksheets.Add
    With objWorksheet
        Call .Paste
        If .Shapes.Count = 1 Then
            Set objShape = .Shapes(1)
            Set objChartObject = .ChartObjects.Add(Left:=0, Top:=0, _
                Width:=objShape.Width, Height:=objShape.Height)
            With objChartObject
                Call .Chart.Paste
                Call .Chart.Export(Filename:=FILE_PATH, FilterName:="JPG")
                Set Image1.Picture = LoadPicture(FILE_PATH)
                Call Kill(PathName:=FILE_PATH)
            End With
        Else
            Call MsgBox("Kein Bild in der Zwischenablage.", vbExclamation, "Hinweis")
        End If
    End With
    Application.DisplayAlerts = False
    objWorksheet.Delete
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    Set objWorksheet = Nothing
    Set objShape = Nothing
    Set objChartObject = Nothing
End Sub

Was du da in Zelle A1 schreiben willst ist mir nicht klar.
Gruß
Nepumuk
Anzeige
AW: Zwischenablage in Userform anzeigen und ...
01.10.2019 19:05:36
Thomas
Ok.
Ich mache von einem Programm über das Snipping Tool ein Bild, kopiere es und möchte es über die Userform in das Tabellenblatt "Drucken" an einer bestimmten Stelle einfügen.
Das Bild soll mir aber auch in der Userform angezeigt werden.
Das einfügen an der Position habe ich hinbekommen, bekomme es nur nicht in der Userform angezeigt.
Dies mache ich so:
Private Sub CommandButton1_Click()
Worksheets("Drucken").Paste Destination:=Worksheets("Drucken").Cells(41, 2)
End Sub
Wie bekomme ich es aber in der Userform angezeigt?
Danke für Eure prima Hilfe
Anzeige
AW: Zwischenablage in Userform anzeigen und ...
01.10.2019 19:46:35
Nepumuk
Hallo Thomas,
so:
Private Sub CommandButton1_Click()
    Dim objShape As Shape, objChartObject As ChartObject
    Dim strPath As String
    Application.ScreenUpdating = False
    With Worksheets("Drucken")
        .Paste Destination:=.Cells(41, 2)
        If .Shapes.Count >= 1 Then
            strPath = Environ$("TMP") & "\Test.jpg"
            Set objShape = .Shapes(.Shapes.Count)
            Set objChartObject = .ChartObjects.Add(Left:=0, Top:=0, _
                Width:=objShape.Width, Height:=objShape.Height)
            With objChartObject
                Call .Chart.Paste
                Call .Chart.Export(Filename:=strPath, FilterName:="JPG")
                Set Image1.Picture = LoadPicture(strPath)
                Call Kill(PathName:=strPath)
                Call .Delete
            End With
        Else
            Call MsgBox("Kein Bild in der Zwischenablage.", vbExclamation, "Hinweis")
        End If
    End With
    Application.ScreenUpdating = True
    Set objShape = Nothing
    Set objChartObject = Nothing
End Sub

Gruß
Nepumuk
Anzeige
AW: Zwischenablage in Userform anzeigen und ...
01.10.2019 18:55:55
ChrisL
Hi Thomas
Nur ein paar Inputs. Bitte Frage bei Bedarf wieder als offen markieren.
Ich glaube das Bild muss zuerst als Datei auf die Festplatte. Dazu google mal z.B.
vba save image from clipboard to file
Vielleicht findest du einen passenden Code.
Die Bilddatei in ein Image-Control oder Tabelle zu laden, dürfte dann keine grosse Sache mehr sein.
Wobei man sich natürlich fragen muss, warum die Bildatei überhaupt ins Clipboard/Zwischenablage kommt, wenn man eigentlich die Bilddatei bräuchte. ;)
cu
Chris
Anzeige
AW: Zwischenablage in Userform anzeigen und ...
01.10.2019 19:01:51
ChrisL
DELETE Beitrag, siehe Nepumuk
Habe vergessen, dass es Paste gibt :)
;
Anzeige
Anzeige

Infobox / Tutorial

Zwischenablage in Userform anzeigen


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Erstelle eine Userform in Excel VBA (Visual Basic for Applications). Füge einen CommandButton und ein Image-Steuerelement hinzu.

  2. Code für das Einfügen eines Bildes: Verwende den folgenden VBA-Code, um das Bild aus der Zwischenablage in die Userform und auf ein Tabellenblatt einzufügen:

    Private Sub CommandButton1_Click()
       Dim objShape As Shape
       Dim objChartObject As ChartObject
       Dim strPath As String
    
       Application.ScreenUpdating = False
    
       With Worksheets("Drucken")
           .Paste Destination:=.Cells(41, 2)
           If .Shapes.Count >= 1 Then
               strPath = Environ$("TMP") & "\Test.jpg"
               Set objShape = .Shapes(.Shapes.Count)
               Set objChartObject = .ChartObjects.Add(Left:=0, Top:=0, _
                   Width:=objShape.Width, Height:=objShape.Height)
               With objChartObject
                   Call .Chart.Paste
                   Call .Chart.Export(Filename:=strPath, FilterName:="JPG")
                   Set Image1.Picture = LoadPicture(strPath)
                   Call Kill(PathName:=strPath)
                   Call .Delete
               End With
           Else
               Call MsgBox("Kein Bild in der Zwischenablage.", vbExclamation, "Hinweis")
           End If
       End With
    
       Application.ScreenUpdating = True
       Set objShape = Nothing
       Set objChartObject = Nothing
    End Sub
  3. Ausführen: Starte die Userform und klicke auf den CommandButton, um das Bild aus der Zwischenablage anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Kein Bild in der Zwischenablage."

    • Lösung: Stelle sicher, dass ein Bild in die Zwischenablage kopiert wurde, bevor du den CommandButton klickst.
  • Fehler: Bild wird nicht angezeigt.

    • Lösung: Überprüfe den Pfad, wo das Bild gespeichert wird, und stelle sicher, dass das Image-Steuerelement korrekt benannt ist.

Alternative Methoden

  • Direktes Einfügen in die Tabelle: Wenn du das Bild nicht in einer Userform, sondern direkt in eine Tabelle einfügen möchtest, kannst du den folgenden Code verwenden:

    Private Sub CommandButton1_Click()
       Worksheets("Drucken").Paste Destination:=Worksheets("Drucken").Cells(41, 2)
    End Sub
  • Ziehen eines Bildes aus der Zwischenablage: Du kannst auch ein Bild aus der Zwischenablage in ein Image-Control ziehen, wenn du sicherstellst, dass das Bild im richtigen Format vorliegt.


Praktische Beispiele

  • Beispiel 1: Verwende das Snipping Tool, um einen Screenshot zu erstellen, kopiere es in die Zwischenablage und klicke dann auf den CommandButton, um das Bild in der Userform anzuzeigen.

  • Beispiel 2: Wenn du das Bild auch in der Tabelle "Drucken" an einer bestimmten Position haben möchtest, kannst du die Destination-Eigenschaft anpassen.


Tipps für Profis

  • Zwischenspeicher anzeigen: Nutze die Funktion Application.CutCopyMode um zu überprüfen, ob der Zwischenspeicher aktiv ist.

  • Automatisierung: Überlege dir, wie du diesen Vorgang automatisieren kannst, z.B. durch das Erstellen eines Makros, das beim Öffnen eines bestimmten Dokuments automatisch die Zwischenablage öffnet.


FAQ: Häufige Fragen

1. Wie kann ich die Zwischenablage öffnen? Um die Zwischenablage zu öffnen, kannst du in Windows die Tastenkombination Windows + V verwenden, um den Inhalt der Zwischenablage anzuzeigen.

2. Kann ich mehrere Bilder gleichzeitig aus der Zwischenablage einfügen? Nein, die Excel-Zwischenablage unterstützt in der Regel nur ein Bild gleichzeitig. Du kannst jedoch mehrere Bilder nacheinander kopieren und mit dem obigen Code einfügen.

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