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

Dynamisches Objekt von pdf Datei

Forumthread: Dynamisches Objekt von pdf Datei

Dynamisches Objekt von pdf Datei
15.05.2024 11:42:44
Suedschwede
Hallo,

ich habe eine Excel Datei mit der ich einen Hyperlink auf eine pdf Datei auf unsere Server generiere.

=HYPERLINK(TEXTKETTE("R:\Ordner\ABC\";B4;".pdf");"Zeichnung")

Über Eingabe der Artikelnr. erschein in "B4" der Dateiname. Nur dieser verändert sich.
Wenn ich auf den Link klicke öffnet sich auch immer die Datei.

Ich hätte aber gerne eine Vorschau in Excel.

Mit Einfügen / Objekt / Acrobat Document kann ich aber nur eine bestimmte Datei anfügen, meine muss dynamisch sein.

Habt ihr eine Lösung?
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dynamisches Objekt von pdf Datei
15.05.2024 13:33:11
{Boris}
Hi,

ich fürchte, dass Du das ohne VBA nicht gelöst bekommst, denn das Objekt lässt sich nicht mit dem (dynamischen) Link verknüpfen, wie Du es ja selbst bereits festgestellt hast.
Mit einem passenden Code kann ich Dir aber nicht dienen (vielleicht aber andere). Ich lass die Frage mal offen.

VG, Boris
Anzeige
ChatGPT
15.05.2024 13:49:43
{Boris}
Hi,

nach ein bisschen "Kommunikation" mit ChatGPT habe ich nach ein paar Versuchen einen funktionierenden Code erhalten.

Das Tabellenblatt heißt Sheet1 und der Pfad für das PDF-Dokument steht in A1 - das musst Du Beides auf Deine Gegebenheiten anpassen.


Sub UpdateEmbeddedPDF()

Dim ws As Worksheet
Dim oleObj As OLEObject
Dim newPath As String
Dim objLeft As Double
Dim objTop As Double
Dim objWidth As Double
Dim objHeight As Double

' Arbeitsblatt und Pfad definieren
Set ws = ThisWorkbook.Sheets("Sheet1")
newPath = ws.Range("A1").Value

' Sicherstellen, dass der Pfad nicht leer ist und die Datei existiert
If newPath = "" Or Dir(newPath) = "" Then
MsgBox "Der Pfad in Zelle A1 ist leer oder die Datei existiert nicht.", vbExclamation
Exit Sub
End If

' Das erste OLE-Objekt auf dem Blatt auswählen (angepasst auf Ihr Szenario)
Set oleObj = ws.OLEObjects(1)

' Position und Größe des vorhandenen OLE-Objekts speichern
objLeft = oleObj.Left
objTop = oleObj.Top
objWidth = oleObj.Width
objHeight = oleObj.Height

' Eingebettetes Objekt entfernen
oleObj.Delete

' Neues OLE-Objekt einfügen (allgemein, ohne spezifische ClassType)
Set oleObj = ws.OLEObjects.Add(Filename:=newPath, _
Link:=False, _
DisplayAsIcon:=False)

' Position und Größe des neuen OLE-Objekts anpassen
With oleObj
.Left = objLeft
.Top = objTop
.Width = objWidth
.Height = objHeight
End With

MsgBox "Das eingebettete PDF-Dokument wurde erfolgreich aktualisiert.", vbInformation
End Sub

Anzeige
AW: ChatGPT
15.05.2024 14:09:12
Suedschwede
Vielen Dank,
das ist genau das was ich wollte.
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige