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

Forumthread: Über Button Bild oder Pdf einfügen

Über Button Bild oder Pdf einfügen
18.01.2021 17:28:15
Lars
Hi VBA-Experts,
ich habe bereits mehrere CommandButtons in einem Tabellenblatt erstellt.
Bei Klick eines Buttons soll ein Bild (Führerscheinfoto) eingebettet werden, das sich dann über die Zelle "F2" legt und genau den Maßen der Zelle entspricht. Mit Bildern funktioniert das auch ohne Probleme.
Ich hätte aber gern, dass auch PDFs eingefügt werden können und am Besten auch als Bild eingebettet werden.
Über Shape.AddPicture komm ich da sicher nicht weiter, sondern sicher über OLEObjects. Habt ihr Ideen & Anregungen wie ich das Ganze auflöse?
Viele Grüße, Lars
Private Sub CommandButton2_Click()
Range("F2").Select
PicLocation = Application.GetOpenFilename("Image Files (*.jpg; *.png; *.bmp; *.gif),*.jpg; *. _
png, *.bmp, *.gif", , "Select Image File", , "False")
On Error GoTo fehler
ActiveSheet.Shapes.AddPicture(PicLocation, False, True, -1, -1, -1, -1).Select
With Selection.ShapeRange
' Align picture to top left of range
.LockAspectRatio = msoFalse
.Top = ActiveCell.Top
.Left = ActiveCell.Left
.Height = ActiveCell.Height
.Width = ActiveCell.Width
End With
fehler:
End Sub

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Über Button Bild oder Pdf einfügen
21.01.2021 19:49:23
fcs
Hallo Lars,
hier 2 Beispiele, wie du deine Prozedur für Bilder etwas allgemeiner gestalten kannst (auch in verbundene Zellen einfügen)
und wie du eine PDF-Datei einfügen kannst. Bei mehrseitigen PDF-Dateien wird allerdings immer nur Seite 1 angezeigt. Die weiteren Seiten werden erst nach angezeigt, wenn man die Datei nach Doppelklick im PDF-Editor anzeigt. Bei einer PDF-Datei sollte man diese aber nicht verzerren. Ich hab die Prozedur so erstellt, dass die PDF-Datei mit max. Größe eingefügt wird.
Ich hatte ein kleines Problem. Erst nachdem ich im Datei-Explorer die Anwendung zur Anzeige von PDF neu festgelegt hatte auf den Adobe-Reader funktionierte die Anzeige in Excel.
LG
Franz

'Einfügen einer PDF-Datei
Private Sub CommandButton1_Click()
Dim varPDF As Variant
Dim objOLE As OLEObject
Dim rngObject As Range
On Error GoTo fehler
With Range("B4")
.Select
If .MergeCells = True Then
Set rngObject = .MergeArea
Else
Set rngObject = .Cells
End If
End With
varPDF = Application.GetOpenFilename("PDF (*.pdf),*.pdf", , "Select PDF File", , "False")
If varPDF = False Then Exit Sub
Set objOLE = ActiveSheet.OLEObjects.Add(Filename:=varPDF, _
Link:=False, DisplayAsIcon:=False)
With objOLE
.Top = rngObject.Top
.Left = rngObject.Left
If .Width > rngObject.Width Then .Width = rngObject.Width
If .Height > rngObject.Height Then .Height = rngObject.Height
End With
fehler:
End Sub

'einfügen eines Bildes
Private Sub CommandButton2_Click()
Dim PicLocation As Variant
Dim objShape As Shape
Dim rngObject As Range
On Error GoTo fehler
With Range("F2")
.Select
If .MergeCells = True Then
Set rngObject = .MergeArea
Else
Set rngObject = .Cells
End If
End With
PicLocation = Application.GetOpenFilename("Image Files (*.jpg; *.png; *.bmp; *.gif)," _
& "*.jpg; *.png; *.bmp; *.gif", , "Select Image File", , "False")
If PicLocation = False Then Exit Sub
Set objShape = ActiveSheet.Shapes.AddPicture(PicLocation, msoFalse, msoTrue, _
rngObject.Left, rngObject.Top, rngObject.Width, rngObject.Height)
fehler:
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder und PDFs in Excel einfügen: So geht's


Schritt-für-Schritt-Anleitung

Um ein Bild oder eine PDF-Datei in Excel einzufügen, kannst du VBA verwenden. Hier sind die Schritte, die du befolgen solltest:

  1. Öffne die Excel-Datei und wechsle in den VBA-Editor (ALT + F11).

  2. Füge einen CommandButton hinzu. Gehe zu „Entwicklertools“ > „Einfügen“ > „Button“.

  3. Doppelklicke auf den Button, um das VBA-Fenster zu öffnen.

  4. Füge den folgenden Code für das Einfügen eines Bildes ein:

    Private Sub CommandButton1_Click()
       Dim PicLocation As Variant
       Dim objShape As Shape
       Dim rngObject As Range
       On Error GoTo fehler
       With Range("F2")
           If .MergeCells = True Then
               Set rngObject = .MergeArea
           Else
               Set rngObject = .Cells
           End If
       End With
       PicLocation = Application.GetOpenFilename("Image Files (*.jpg; *.png; *.bmp; *.gif),*.jpg; *.png; *.bmp; *.gif", , "Select Image File", , "False")
       If PicLocation = False Then Exit Sub
       Set objShape = ActiveSheet.Shapes.AddPicture(PicLocation, msoFalse, msoTrue, rngObject.Left, rngObject.Top, rngObject.Width, rngObject.Height)
    fehler:
    End Sub
  5. Für das Einfügen einer PDF-Datei kannst du den folgenden Code verwenden:

    Private Sub CommandButton2_Click()
       Dim varPDF As Variant
       Dim objOLE As OLEObject
       Dim rngObject As Range
       On Error GoTo fehler
       With Range("B4")
           If .MergeCells = True Then
               Set rngObject = .MergeArea
           Else
               Set rngObject = .Cells
           End If
       End With
       varPDF = Application.GetOpenFilename("PDF (*.pdf),*.pdf", , "Select PDF File", , "False")
       If varPDF = False Then Exit Sub
       Set objOLE = ActiveSheet.OLEObjects.Add(Filename:=varPDF, Link:=False, DisplayAsIcon:=False)
       With objOLE
           .Top = rngObject.Top
           .Left = rngObject.Left
           If .Width > rngObject.Width Then .Width = rngObject.Width
           If .Height > rngObject.Height Then .Height = rngObject.Height
       End With
    fehler:
    End Sub
  6. Schließe den VBA-Editor und teste die Buttons in deiner Excel-Datei.


Häufige Fehler und Lösungen

  • Fehler: PDF wird nicht angezeigt
    Stelle sicher, dass der Adobe Reader als Standardanwendung für PDFs festgelegt ist. Manchmal kann es hilfreich sein, die Anwendung neu zu installieren oder die Einstellungen zurückzusetzen.

  • Problem: Bild wird verzerrt
    Achte darauf, dass die Option .LockAspectRatio auf msoFalse gesetzt ist, um dies zu vermeiden.

  • Fehler beim Auswählen der Datei
    Vergewissere dich, dass du die richtigen Dateiformate auswählst. Für Bilder sollten die Endungen jpg, png, bmp oder gif sein.


Alternative Methoden

Neben der Verwendung von VBA kannst du auch manuell Bilder oder PDFs in Excel einfügen:

  • Für Bilder: Gehe zu „Einfügen“ > „Bilder“ und wähle die gewünschte Datei aus.
  • Für PDFs: Du kannst PDFs in Excel einfügen, indem du zu „Einfügen“ > „Objekt“ gehst und „Aus Datei erstellen“ auswählst.

Diese Methoden sind einfach und erfordern keine Programmierung.


Praktische Beispiele

  1. Einfügen eines Logos in ein PDF: Um ein Logo in ein PDF-Dokument einzufügen, kannst du den Excel-Bereich drucken und das Logo als Bild einfügen, bevor du die Datei speicherst.

  2. Bilder aus PDFs extrahieren: Verwende Adobe Reader, um Bilder aus einem PDF-Dokument zu extrahieren, und füge sie dann mit den oben genannten Methoden in Excel ein.


Tipps für Profis

  • Batch-Einfügen von Bildern: Du kannst eine Schleife in VBA verwenden, um mehrere Bilder gleichzeitig einzufügen.
  • PDFs in Excel: Stelle sicher, dass die PDF-Datei nicht zu groß ist, da dies die Leistung von Excel beeinträchtigen kann.

Wenn du häufig mit Bildern und PDFs arbeitest, kann es hilfreich sein, eigene Makros zu erstellen, um den Prozess zu automatisieren.


FAQ: Häufige Fragen

1. Wie kann ich ein Bild in eine PDF einfügen?
Du kannst Bilder in eine PDF-Datei einfügen, indem du ein PDF-Bearbeitungsprogramm wie Adobe Acrobat verwendest. Dort kannst du Bilder direkt in die PDF-Datei einfügen.

2. Funktioniert das Einfügen von PDFs in Excel auch in älteren Versionen?
Ja, das Einfügen von PDFs in Excel funktioniert in den meisten Versionen, jedoch kann die Benutzeroberfläche variieren. Stelle sicher, dass du die richtigen Schritte für deine Excel-Version befolgst.

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