Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1508to1512
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

OLEobject größe ändern vba

OLEobject größe ändern vba
17.08.2016 12:11:17
Clarissa
Hallo,
ich habe in VBA Problem jedoch in Word.
Ich hoffe es ist trotzdem ok, dass ich hier meine Frage stelle.
Und zwar habe ich in Word eine PDF als OLEobject eingefügt.
Der Code lautet wie folgt:
Selection.GoTo what:=wdGoToBookmark, Name:="Konformität"
Selection.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _
FileName:="", LinkToFile:=False, DisplayAsIcon:=False
Jetzt habe ich das Problem, dass das ganze zu groß dargestellt wird. Es wird eine ganze Seite ausgefüllt und ich würde das ganze gern kleiner haben. Jetzt bräuchte ich einen Code, der mir diese eingefügte PDF verkleinert.
Danke im Vorraus

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Schiebe einfach noch...
17.08.2016 12:21:32
Case
Hallo, :-)
... ein...
With ActiveDocument.InlineShapes(1)
.ScaleHeight = 50
.ScaleWidth = 50
End With
... nach. ;-)
Servus
Case

AW: Schiebe einfach noch...
17.08.2016 12:51:11
Clarissa
Danke für die schnelle Antwort.
Das habe ich jetzt noch dazu gepackt, dann kommt aber ein Laufzeitfehler (4605). Dieser Befehl sei nicht verfügbar und markiert mir die ".ScaleHeight = 50" Zeile.
Lasse ich das Scale einfach weg und mache ich nur ".Height = 50", dann tritt kein Fehler auf jedoch verändert sich auch nichts an der PDF
Ich habe einfach...
17.08.2016 13:00:35
Case
Hallo, :-)
... deinen Code genommen und meine Zeilen druntergepackt - getestet - und hat funktioniert.
Ich kenne deine Rahmenbedingungen nicht. Bei mir brummt das. ;-)
Servus
Case

Anzeige
AW: Ich habe einfach...
17.08.2016 13:07:24
Clarissa
Mist!
Ich hab auch nur deine Zeilen per Copy and Paste eingfügt und bei mir hauts irgendwie nicht hin :(
Aber vielen vielen Danke für die schnelle Antworten....
Ist eventuell...
17.08.2016 13:09:24
Case
Hallo, :-)
... ein Dokumentenschutz aktiv?
Servus
Case

AW: Ist eventuell...
17.08.2016 13:10:58
Clarissa
Nein dürfte normal nicht sein, manuell kann ich das ganze danach auch verkleinern.
Kannst Du mal...
17.08.2016 13:12:58
Case
Hallo, :-)
... eine Beispieldatei hochladen, an der man das Problem testen kann?
Servus
Case

AW: Kannst Du mal...
17.08.2016 13:27:35
Clarissa
Hallo..
ich wollte es grad hochladen, jedoch ist die Datei zu groß.
Kann ich dir die irgendwie anders zu kommen lassen oder soll ich zum löschen anfangen?
Ich befürchte nur das wenn ich zum löschen anfange, dass es dann vll bei dir geht und bei mir danach doch wieder nicht
Anzeige
Wie wäre es...
17.08.2016 13:34:15
Case
Hallo, :-)
... wenn du die Datei zippst?
Servus
Case

AW: Wie wäre es...
17.08.2016 13:39:46
Clarissa
Hab jetzt das unnötige rausgelöscht, da es nach dem zippen (vll habe ich das falsch gemacht) noch immer zu groß war. Der Fehler tritt jedoch auch in diesen Dokument noch immer auf.
Gedacht ist es so, das man auf Starte Tool geht, dann öffnet sich die UserForm und darin dann der Button "konformitätserklärung einfügen" ist mit dem Code hinterlegt.
Vielen Dank
https://www.herber.de/bbs/user/107670.doc
Anzeige
Nimm einfach...
17.08.2016 14:30:28
Case
Hallo, :-)
... statt...:
With ActiveDocument.InlineShapes(1)
... dann:
With ActiveDocument.InlineShapes(2)
Mit 1 erwischst Du den CommandButton. ;-)
Hast Du noch mehrere drin, musst du halt entsprechend anpassen.
Servus
Case

AW: Nimm einfach...
17.08.2016 14:43:48
Clarissa
Vielen Vielen Vielen Dank!!!
Super mega toll! Endlich funktioniert es ((((((:
Das freut mich... o. r. T.
17.08.2016 14:52:05
Case
:-) :-)
AW: Das freut mich... o. r. T.
17.08.2016 14:58:25
Clarissa
Jetzt hab ich meinen super Fortschritt meinen Kollegen gezeigt und wir sind auf ein neues Problem gestoßen. Im Dokument sollen mehrmals PDFs eingefügt werden und unterschiedlich viele Situationsabhängig. Dann weiß ich ja im vornherein nicht welche Nummer ich für das InlineShape brauche... Kann ich dem auch irgendwie Namen zuweisen oder irgendwie anders ein bestimmtes Festdefinieren ohne das sich das ändert, wenn ich davor noch was einfüge?
Anzeige
Dann würde ich...
17.08.2016 15:42:16
Case
Hallo, :-)
... mit "ConvertToShape" arbeiten. Wenn Du dann wieder ein "InlineShape" einfügst, sollte es wieder den gleichen Index bekommen. Einem Shape kannst Du einen Namen geben. InlineShapes bekommen einen Index.
Dim objPDF As Object
Application.ScreenUpdating = False
Application.DisplayAutoCompleteTips = True
Selection.GoTo what:=wdGoToBookmark, Name:="Konformität"
Selection.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _
FileName:="", LinkToFile:=False, DisplayAsIcon:=False
Set objPDF = ActiveDocument.InlineShapes(2).ConvertToShape
With objPDF
.Name = "Konform1"
.Height = 150
.Width = 150
End With
'ActiveDocument.Range(0, 0).Select
Teste es mal.
Servus
Case

Anzeige
AW: Dann würde ich...
18.08.2016 07:22:40
Clarissa
Hallo,
sorry gestern war dann schon Feierabend aber ich habe es jetzt gleich ausprobiert,
wenn ich des Probiere, dann bringt er mir einen Laufzeitfehler: "Die Methode 'ConvertToShape' für das Objekt 'InlineShape' ist fehlgeschlagen" und markiert mir bei Debuggen folgende Zeile:
Set objPDF = ActiveDocument.InlineShapes(2).ConvertToShape
woran könnte das liegen?
Wirklich vielen vielen Dank für deine Hilfe!
Der Code von Anton...
18.08.2016 09:31:39
Anton...
Hallo, :-)
... funktioniert bei mir so: ;-)
Private Sub Konvormitäteinfügen_Click()
Application.ScreenUpdating = False
Application.DisplayAutoCompleteTips = True
Selection.GoTo what:=wdGoToBookmark, Name:="Konformität"
Selection.InlineShapes.AddOLEObject ClassType:="AcroExch.Document.DC", _
FileName:="", LinkToFile:=False, DisplayAsIcon:=False
Call Anton
ActiveDocument.Range(0, 0).Select
End Sub
Sub Anton()
Dim pdf As InlineShape
For Each pdf In ThisDocument.InlineShapes
If pdf.OLEFormat.ClassType = "AcroExch.Document.DC" Then
pdf.ScaleHeight = 50
pdf.ScaleWidth = 50
End If
Next
End Sub
Du kannst das auch am Schluss durchlaufen lassen, wenn du alle PDFs eingefügt hast.
Servus
Case

Anzeige
AW: Der Code von Anton...
18.08.2016 09:36:34
Anton...
Danke für deine Antwort,
das probiere ich dann auch noch aus.
Habe aber nochmal mit dem Code rumprobiert den du mir geschickt hast zum umwandeln zu Shape.
Dazu habe ich im Internet gefunden, dass das nur funktioniert, wenn das Word Dokument an der Stelle wo das (Inline)Shape ist aktiv ist. Somit lag wohl der Fehler daran, das die PDF beim einfügen im Adobe Reader geöffnet wird und geschlossen werden muss. Deswegen habe ich jetzt deinen Code auf einen weiter Button gelegt, jetzt funktioniert es.
Ich hoffe das Problem ist damit endgültig gelöst und es tauchen nicht weitere Probleme auf.
Vielen Vielen Danke für die Mehrmalige Hilfe!
Anzeige
PDFs eingefügen
17.08.2016 15:44:20
Anton
Hallo Clarissa,
mit diesem Code kannst du alle PDFs auf gleiche Größe bringen:
Sub b()
Dim pdf As InlineShape
For Each pdf In ThisDocument.InlineShapes
If pdf.OLEFormat.ClassType = "AcroExch.Document.DC" Then
pdf.ScaleHeight = 50
pdf.ScaleWidth = 50
End If
Next
End Sub
mfg Anton
AW: PDFs eingefügen
18.08.2016 07:26:26
Clarissa
Hallo,
danke für deine Hilfe,
habe ich jetzt auch gleich mal ausprobiert, jedoch bekomme ich da auch einen Fehler (Objektvariable oder With-Blockvariable nicht festgelegt). Da ich leider nicht sonderlich gut in VBA bin und das zum ersten mal mache, kann ich mit der Meldung auch nichts anfangen :(
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige