Registriert seit: 24.02.2020
Version(en): 2019
Hallo liebes Forum.
Erst einmal danke an alle. Hier wird einem echt weiter geholfen.
Hätte nochmal eine Frage. In einer Excel Datei lasse ich per Makro pdf erzeugen welche dann als Objekt in das Workshops eingefügt werden . Es wird als Symbol eingefügt , so daß wenn ich darauf klicke sich das PDF öffnet.
Gibt es eine Möglichkeit wie ich in der ganzen Arbeitsmappe alle pdf löschen kann ? Würde mir nach Benutzung ersparen die PDF wieder zu löschen ( die Datei wird verschickt und dann sicherheitshalber alle personenbezogenen Daten darin gelöscht ).
Wichtig wäre das nur die PDF Objekte gelöscht werden. Nicht alle Objekte.
Danke sehr
Registriert seit: 11.04.2014
Version(en): Office 365
Weshalb fügst Du das überhaupt als Objekt ein? Du kannst doch auch die PDF-Datei direkt erstellen und verschicken, eventuell zusammen mit der Exceldatei.
Du kannst Deine Original-Datei auch als Vorlage (xltm) speichern. Auf dieser Grundlage beruhen dann die Dateien mit den Nutzerdaten. Dabei aber beachten, dass die Prozeduren auf die aktive Arbeitsmappe (ActiveWorkbook) referenzieren, nicht auf die Datei mit dem Code (ThisWorkbook).
Registriert seit: 24.02.2020
Version(en): 2019
Die Dateien direkt einfügen hat den Grund das sie von verschiedenen Benutzern benutzt wird und ein Ausgabepfad dann auf jeden PC der gleiche sein müsste. Deshalb das direkt einfügen. So klappt die Datei egal wer und auf welchem PC.
Für den Empfänger ist das auch recht einfach da die Daten archiviert werden aber mehr wird nicht damit gemacht. Vielleicht muss man noch dazu sagen das es ca 20 pdf sind welche an 2 Tagen erzeugt werden und dann an 1 Empfänger gehen. So kann ich quasi die Datei auf 1 mal versenden
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
eine Exceldatei als Container zu verwenden ist trotzdem nicht gerade die beste Variante. Du könntest, wenn Du nicht 20 Anhänge willst, die pdf z.B. auch zippen, ggf. auch das Verzeichnis wo die drin liegen und dort legst Du auch die Exceldatei rein …
Eingebettete Objekte bekommst Du z.B. so raus:
Code:
Sub Makro1()
Dim objOLE As OLEObject
On Error Resume Next
For Each objOLE In ActiveSheet.OLEObjects
MsgBox objOLE.SourceName 'funktioniert nur mit Verknuepfung
MsgBox objOLE.Name
Next
End Sub
Wenn Du nur pdf als OLEObject eingefügt hast, dann passt eine Schleife mit diesen Objekten. Hast Du auch andere Dokumente eingefügt hast wird es problematisch
Den Dateinamen bekommst Du aus dem SourceNamen und den wiederum nur aus der Verknüpfung.
Wenn Du die pdf aber schon per Makro erzeugst und einfügst, dann gebe den Objekten doch einfach entsprechende Namen, z.B. pdf_1, pdf_2 oder wie auch immer und dann löschst Du alle Objekte, deren Namen mit pdf beginnt ...
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
00202
Nicht registrierter Gast
(14.03.2020, 19:18)Timmihase schrieb: Gibt es eine Möglichkeit wie ich in der ganzen Arbeitsmappe alle pdf löschen kann ? Wichtig wäre das nur die PDF Objekte gelöscht werden. Nicht alle Objekte.
Hallo, :19:
lass mal als erstes die Sub "
Main_1()" laufen:
Code:
Option Explicit
Public Sub Main_1()
Dim objOle As Object
For Each objOle In Tabelle1.OLEObjects
Debug.Print objOle.progID
Next objOle
End Sub
Tabelle1 (
das ist der Codename der Tabelle) musst du natürlich anpassen!
Wenn mit Adobe gearbeitet wird kommt dabei sowas raus (i
m Direktfenster) - "
AcroExch.Document.DC".
Der zweite Code löscht dann:
Code:
Public Sub Main_2()
Dim objOle As Object
For Each objOle In Tabelle1.OLEObjects
If objOle.progID Like "Acro*" Then
objOle.Delete
End If
Next objOle
End Sub
Wenn dir so Ausdrücke wie "
CodeName" oder "
Direktfenster" nichts sagen - suche mal im
Netz danach. :21:
Registriert seit: 11.04.2014
Version(en): Office 365
15.03.2020, 12:11
(Dieser Beitrag wurde zuletzt bearbeitet: 15.03.2020, 12:11 von mumpel.)
(14.03.2020, 22:18)Timmihase schrieb: (...) und ein Ausgabepfad dann auf jeden PC der gleiche sein müsste (...)
Das ist kein Problem.
Environ("USERPROFILE") & "\Documents\" speichert im Benutzerpfad
Dokumente.
(14.03.2020, 22:18)Timmihase schrieb: (...) da die Daten archiviert werden (...)
Excel ist für eine rechtssichere Archivierung ohnehin nicht geeignet, da nicht manipulationssicher.
Registriert seit: 24.02.2020
Version(en): 2019
Hi,
Sorry für die späte Antwort. Der Code klappt perfekt. Danke
@
mumpel : Rechtssicher ist es natürlich nicht, das stimmt schon. Brauch es aber auch nicht rechtssicher Danke nochmals an alle