Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bild aus Zwischenablage aus VBA einfügen

Bild aus Zwischenablage aus VBA einfügen
30.05.2023 07:42:14
Dominik Werner

Guten Morgen!

Erstmal vielen Dank in die Runde! Dieses Forum hat mir schon so manchen Trick verraten!

Bei meinem aktuellen Problem bin ich allerdings nicht fündig geworden. Oder ich habe es gelesen und einfach nicht verstanden.
Meine VBA Kenntnisse sind leider nicht sehr fortgeschritten. Ich lese Sachen, kopiere sie mir zusammen und versuche es dann zu verstehen ;-).

Ich habe in einer Exceldatei eine Bilddatei (Name: Wartung) eingefügt. Nun möchte ich folgendes Über VBA ermöglichen:

- Rechtsklick
- Bild ändern ...
- Aus Zwischenablage ...

Das Ganze soll dann über einen Button ausgelöst werden.

Ich hoffe, dass die Beschreibung ausreichend ist.

Vielen Danke und Grüße,
Dominik

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
30.05.2023 08:46:48
Dominik Werner
Kleiner Nachtrag:

In Zelle M39 würde ich gerne als Datum (YYYY-MM-DD) die letzte Aktualisierung sehen.

Das kann man ja sicherlich mit einbauen ;-).

Danke!


AW: Bild aus Zwischenablage aus VBA einfügen
30.05.2023 10:33:52
onur
- Bild ändern ...
- Aus Zwischenablage ...
??????
WAS soll das denn bedeuten?


Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
30.05.2023 10:59:37
Dominik Werner
Hallo.

Erstmal Danke für die Antwort.

Ich versuche verzweifelt ein Bild davon hoch zu laden. Klappt leider nicht.
https://www.transfernow.net/de/dltransfer?utm_source=202305307WgQpxAN

Wenn ich auf das Bild in der Exceldatei einen Rechtsklick mache, wähle ich "Bild ändern ..." und dann "Aus Zwischenablage ..." aus.
Das möchte ich gerne über eine Makro lösen und anschließend das Datum der Änderung in die Zelle eingetragen haben.

Ist das so verständlicher?

Danke und Grüße,
Dominik.


Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
30.05.2023 18:32:26
Dominik Werner
Und ich schon wieder.

Das das Datum nach dem betätigen des Buttons geändert wird, habe ich schonmal hin bekommen:

Tabelle1.Range("A1").Value = Date

Wie ich das Bild gegen ein Bild aus der Zwischenablage ersetzte, klappt leider immer noch nicht.

Gruß,
Dominik


Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
30.05.2023 20:49:07
volti
Hallo Dominik,

hier eine Idee zu Deinem Anliegen...

Code:


Option Explicit Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" ( _ ByVal wFormat As Long) As Long Type RECTB Left As Double Top As Double Width As Double Height As Double Name As String End Type Sub BildAendern() Dim R As RECTB If IsClipboardFormatAvailable(2) <> 0 Then ' 2 = CF_BITMAP If TypeName(Selection) = "Picture" Then With Selection R.Left = .Left: R.Top = .Top R.Width = .Width: R.Height = .Height R.Name = .Name .Delete End With 'Neue Grafik einfügen ActiveSheet.Paste With Selection .ShapeRange.LockAspectRatio = msoFalse .Left = R.Left: .Top = R.Top .Height = R.Height: .Width = R.Width .Name = R.Name End With Else MsgBox "Es ist kein Zielbild markiert!", vbCritical, "Bild ändern" End If Else MsgBox "Es ist kein Quellbild in der Zwischenablage!", vbCritical, "Bild ändern" End If End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz



Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
31.05.2023 06:52:29
Dominik Werner
Guten Morgen,

Danke für deine Antwort!

Habe den Code rein kopiert. Leider kommt die Fehlermeldung "NachEnd Sub, Function oder End Property können nur Kommentare stehen".

Was habe ich falsch gemacht?

Grüße,
Dominik.


AW: Bild aus Zwischenablage aus VBA einfügen
31.05.2023 07:33:03
Volti
Moin,
Das sagt ja schon die Fehlermeldung, dass nach End Sub noch Code steht.

Ansonsten weiß niemand, was genau Du da gemacht hast. Da wird keiner konkret helfen können.

Gruß Karl-Heinz


Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
31.05.2023 11:22:36
Dominik Werner
Hallo,

ich habe den Code 1:1 kopiert und eingefügt. Danach kam die Fehlermeldung.

Gruß,
Dominik.


AW: Bild aus Zwischenablage aus VBA einfügen
31.05.2023 11:34:10
volti
Hallo,

das heißt, Du hast nur den kompletten code wie hier dargestellt in ein leeres Modul kopiert. Dann kann das nicht sein, ich habe es auch gerade noch mal probiert.

Oder es war schon was drin im Modul und Du hast den code da mitten rein kopiert?

Du siehst, Deine Aussage ist nicht eindeutig.

Ggf. Mappe hochladen.....


Anzeige
AW: Bild aus Zwischenablage aus VBA einfügen
31.05.2023 12:32:58
Dominik Werner
Hallo,

anbei der Link zu einer angepassten Datei:

https://www.transfernow.net/dl/20230531C4KI5hti

Im Reiter "Übersicht" findet sich der Punkt Wartungen.
Das dortige Bild möchte ich mit einem Rechtsklick -> Bild ändern -> aus Zwischenablage gerne gegen ein anderes Bild ersetzt.

Danke und Grüße,
Dominik.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bilder aus Zwischenablage einfügen und in Excel übertragen


Schritt-für-Schritt-Anleitung

Um ein Bild aus der Zwischenablage in Excel einzufügen, benötigst Du VBA. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. VBA-Editor öffnen:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul hinzufügen:

    • Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle Einfügen -> Modul.
  3. VBA-Code einfügen:

    • Kopiere den folgenden Code und füge ihn in das neue Modul ein:
    Option Explicit
    Private Declare PtrSafe Function IsClipboardFormatAvailable Lib "user32" (ByVal wFormat As Long) As Long
    
    Type RECTB
       Left   As Double
       Top    As Double
       Width  As Double
       Height As Double
       Name   As String
    End Type
    
    Sub BildAendern()
       Dim R As RECTB
    
       If IsClipboardFormatAvailable(2) <> 0 Then   ' 2 = CF_BITMAP
           If TypeName(Selection) = "Picture" Then
               With Selection
                   R.Left = .Left:   R.Top = .Top
                   R.Width = .Width: R.Height = .Height
                   R.Name = .Name
                   .Delete
               End With
               ActiveSheet.Paste
               With Selection
                   .ShapeRange.LockAspectRatio = msoFalse
                   .Left = R.Left:     .Top = R.Top
                   .Height = R.Height: .Width = R.Width
                   .Name = R.Name
               End With
           Else
               MsgBox "Es ist kein Zielbild markiert!", vbCritical, "Bild ändern"
           End If
       Else
           MsgBox "Es ist kein Quellbild in der Zwischenablage!", vbCritical, "Bild ändern"
       End If
    
    End Sub
  4. Makro ausführen:

    • Schließe den VBA-Editor und kehre zu Excel zurück. Wähle das Bild aus, das Du ersetzen möchtest, und führe das Makro BildAendern aus.
  5. Letzte Aktualisierung speichern:

    • Um das Datum in Zelle M39 zu aktualisieren, füge folgende Zeile am Ende des Codes hinzu:
      Tabelle1.Range("M39").Value = Date

Häufige Fehler und Lösungen

  • Fehlermeldung: "Nach End Sub, Function oder End Property können nur Kommentare stehen":

    • Stelle sicher, dass der gesamte Code korrekt in ein leeres Modul eingefügt wurde und keine zusätzlichen Zeilen nach End Sub vorhanden sind.
  • Bild wird nicht eingefügt:

    • Überprüfe, ob ein Bild in der Zwischenablage vorhanden ist. Du kannst dies testen, indem Du das Bild manuell in Excel einfügst.

Alternative Methoden

Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch das Bild manuell in Excel einfügen:

  1. Kopiere das Bild in die Zwischenablage (Rechtsklick auf das Bild und "Kopieren" wählen).
  2. Gehe zu Excel und wähle die Zelle aus, in der das Bild eingefügt werden soll.
  3. Drücke Strg + V, um das Bild in die aktive Zelle einzufügen.

Diese Methode eignet sich, wenn Du keine VBA-Kenntnisse hast oder schnell ein Bild einfügen möchtest.


Praktische Beispiele

  • Eingabemaske für Wartungen:
    • Du könntest eine Excel-Eingabemaske erstellen, um Bilder von Wartungen zu verwalten. Bei jedem Update kannst Du das Bild aus der Zwischenablage einfügen und das Datum der letzten Aktualisierung in einer dazugehörigen Zelle speichern.

Tipps für Profis

  • VBA zwischenablage leeren:

    • Um die Zwischenablage mit VBA zu leeren, kannst Du folgende Zeile verwenden:
      Application.CutCopyMode = False
  • Optimierung des Codes:

    • Überlege, wie Du den Code so anpassen kannst, dass er mehrere Bilder gleichzeitig verarbeitet, um Deine Effizienz zu steigern.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Bild korrekt eingefügt wird? Um sicherzustellen, dass das Bild korrekt eingefügt wird, prüfe, ob das ursprüngliche Bild in der Zwischenablage vorhanden ist, bevor Du das Makro ausführst.

2. Kann ich die Größe des eingefügten Bildes anpassen? Ja, Du kannst die Eigenschaften Width und Height im VBA-Code anpassen, um die Größe des eingefügten Bildes zu ändern.

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