Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Adobe Version bei Öffnen ermitteln

Betrifft: Adobe Version bei Öffnen ermitteln von: Laeubchen
Geschrieben am: 13.11.2014 21:18:09

Guten Abend,

mit den folgenden Anweisungen ist es ja möglich eine PDF zu öffnen, was soweit funktioniert.

'MS Office 2003 Adobe 7
ActiveSheet.OLEObjects.Add(ClassType:="AcroExch.Document.7", Link:=False, _
DisplayAsIcon:=False).Activate

'MS Office 2007 Adobe 11
ActiveSheet.OLEObjects.Add(ClassType:="AcroExch.Document.11", Link:=False, _
DisplayAsIcon:=False).Activate

Problem ist leider das unterschiedliche Adobe Versionen existieren und somit Fehlermeldungen erscheinen wird nicht die richtige gefunden.

Gibt es eine Möglichkeit nicht von der installierten Version abhängig zu sein?

Vielleicht ein Befehl der alle Versionen abdeckt?

Würde mich über ein Feedback freuen.

Gruß
Laeubhen

  

Betrifft: AW: Adobe Version bei Öffnen ermitteln von: KlausF
Geschrieben am: 14.11.2014 00:15:08

Hallo,
bei mir unter dem Mac funktioniert

Sub PDF_öffnen()
Dim sPath As String
sPath = ThisWorkbook.Path
sPath = IIf(Right$(sPath, 1) = Application.PathSeparator, sPath, sPath & Application. _
PathSeparator)
If sPath = "" Then
MsgBox "Die Datei muß zuerst gespeichert werden"
Exit Sub
End If
ActiveWorkbook.FollowHyperlink sPath & "DeineDatei.pdf"
End Sub
Damit wird das PDF mit der im Betriebssystem voreingestellten PDF-Software geöffnet.
(in der Regel die letzte Version von Acrobat Reader bzw. der Acrobat Vollversion)

Gruß
Klaus


  

Betrifft: AW: Adobe Version bei Öffnen ermitteln von: Laeubchen
Geschrieben am: 14.11.2014 22:26:11

Hallo Klaus,

vielen Dank für Dein Feedback.

Leider erscheint eine Fehlermeldung.



Ich muss dazu schreiben, das es sich beim Öffnen der PDF nicht immer um die selbe handelt.

Vielleicht kannst Du so nett sein und nochmal schauen.

Gruß
Laeubchen


  

Betrifft: AW: Pfad ok? von: KlausF
Geschrieben am: 15.11.2014 03:58:15

Hallo Laeubchen,

die Fehlermeldung sagt mir nichts. Hast Du den Pfad angepasst?
ThisWorkbook.Path sucht an der Stelle, wo die aktive Excel-Datei liegt.
Und der Dateiname muss natürlich auch korrekt sein ...

Gruß
Klaus


  

Betrifft: AW: Pfad ok? von: Laeubchen
Geschrieben am: 15.11.2014 11:44:31

Hallo Klaus,

schön das Du Dich nochmal gemeldet hast.

Nun, da weder der Pfad noch die Datei beim Aufruf bekannt sind, kann ich diesen nicht vorgeben.

In diesem Fall wäre es wichtig, das der Anwender mit einem Öffnungsdialog selbst entscheiden kann den Pfad zu bestimmen und dann die für ihn relavante Datei aussucht und öffnet.

Ich nehme an, vielleicht liege ich richtig, das für den Pfad und die Datei Variablen gesetzt werden müssen, aber da bin ich noch sehr unbeholfen.

Gruß
Laeubchen


  

Betrifft: AW: Pfad ok? von: KlausF
Geschrieben am: 15.11.2014 16:29:06

Hallo Laeubchen ,
da ich mit dem Mac unterwegs bin, müsste Dir da jemand anderes behilflich sein.
Evtl. kannst Du damit etwas anfangen:

http://msdn.microsoft.com/de-de/library/office/hh710200(v=office.14).aspx#odc_xl4_ta_ProgrammaticallySelectFileforMac_UsingGetOpenFilenameMethod

Gruß
Klaus


  

Betrifft: AW: Pfad ok? von: Laeubchen
Geschrieben am: 15.11.2014 22:42:47

Hallo Klaus,

aber trotz allem vielen Dank.

Vielleicht findet sich noch ein fleißiger Helfer.

Gruß
Laeubchen


  

Betrifft: AW: Pfad ok? von: Michael
Geschrieben am: 16.11.2014 18:40:19

Hallo Läubchen,

hier ein Schnellschuß, die verhyperlinkisierung mit dem Makorecoder aufgenommen:

Sub S_getDateiName()
' http:// _
msdn.microsoft.com/de-de/library/office/ff834966(v=office.15).aspx

' http://www.office-loesung.de/ _
ftopic293618_0_0_asc.php

Pfad = ThisWorkbook.Path
ChDrive Mid(Pfad, 1, 2)
ChDir Pfad

'filetoopen = Application.GetOpenFilename("Anwendungen (*.exe), *.exe")
filetoopen = Application.GetOpenFilename("PeDeEff (*.pdf), *.pdf")
If filetoopen <> False Then
  Range("a1") = filetoopen
  Else: MsgBox "Keine Änderungen vorgenommen."
End If
Range("a1").Select
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=Pfad, _
        TextToDisplay:="PDF-Datei"

End Sub
Das .follow hab ich auf die Schnelle nicht hinbekommen, aber jetzt kannst mal die Datei wählen.

Schöne Grüße,

Michael


  

Betrifft: AW: Pfad ok? von: Laeubchen
Geschrieben am: 17.11.2014 20:23:46

Hallo Michael,

vielen Dank erst mal für Dein Feedback.

Die PDF muss als Objekt eingefügt werden.

Ich öffne eine Datei in die die PDF eingefügt werden soll. Der Anwender hat jetzt die Möglichkeit über einen Link den Öffnen Dialog anzusteuern, die PDF auszuwählen und dann wird sie zurecht geschnippelt.

Nehme ich den Code von Dir habe ich nur die Möglichkeit einen Link zu setzen zu der relavanten Datei. Vorausgesetzt ich habe das richtig verstanden.

Vielleicht liege ich auch falsch.

Ein Beispiel habe ich beigefügt.

https://www.herber.de/bbs/user/93839.xlsm

Gruß
Laeubchen


  

Betrifft: AW: Bilder proportional einfügen von: KlausF
Geschrieben am: 17.11.2014 21:26:39

Hallo Laeubchen,
probier mal

https://www.herber.de/bbs/user/93841.xls

Zelle auswählen, Makro starten und PDF (oder eine andere Bilddatei) auswählen.
Das Bild wird proportional in die Zelle eingefügt. Passt's?
Was Du mit dann wird sie zurecht geschnippelt meinst, habe ich nicht verstanden.

Gruß
Klaus


  

Betrifft: AW: übersehen von: KlausF
Geschrieben am: 17.11.2014 22:35:07

Hallo Laeubchen,
sorry, habe eben erst das eingebettete Objekt überhalb der Daten gesehen.
Dafür hätte ich keine Lösung.

Gruß
Klaus


  

Betrifft: Codeschnipsel von: Michael
Geschrieben am: 18.11.2014 07:27:43

Hallo Läubchen,

der Codeschnipsel war eigentlich nur als Teillösung für das suchen der pdf gedacht.

Ich hoffe, Du fühlst Dich nicht bevormundet, wenn ich so schlau daherrede, aber mir geht so durch den Kopf:
- pdf ist schlicht kein Grafikformat, sondern viel mehr
- warum muß eigentlich "alles" innerhalb von Excel stattfinden? Reicht es nicht, ne Datei zu verlinken?

So praktisch PDFs sind, sie haben auch ihre Tücken, grad was Sicherheit angeht, siehe z.B.:
http://www.heise.de/security/artikel/Tatort-Internet-PDF-mit-Zeitbombe-1036564.html
http://www.heise.de/security/artikel/Exploit-trotz-Adobes-Sandbox-1625029.html

Ehrlich gesagt, mir ist das im Detail zu hoch, aber ich finde es wichtig, das mal gehört zu haben.

Zu guter Letzt ist mir noch eingefallen, daß der passendste Weg für Dich sein könnte, die registry abzufragen nach dem Programm, das auf dem jeweiligen Rechner mit pdf verknüpft ist, das müßte man dann eigentlich als Objekt einbetten können.

Da bin ich aber auch nicht so fit.

Schöne Grüße,

Michael


  

Betrifft: AW: Codeschnipsel von: Laeubchen
Geschrieben am: 19.11.2014 20:59:38

Hallo Michael,

nein, ich fühle mich nicht bevormundet.

Ich komme aus der Zerstörungsfreien Prüfung, falls Dir das was sagt. Unter anderem prüfen wir auch die Materialgüte mit einem Gerät (Spectro), in dem wir das Material abfunken und das Maschinchen schmeißt dann raus, was es sein könnte.

Diese PDF Dateien ziehen wir runter und fügen sie für den Kunden in das Protokoll ein. Das Protokoll wird aber nicht als Datei gesandt sondern ausgedruckt, unterschrieben und via Post ab zum Kunden.

Dadurch ist die Lösung mit einem Link nicht so gut.

Nun gehe ich erst mal in Urlaub und unser Chef will mal schauen, ob es noch ein andere Möglichkeit gibt betreffs der Datenspeicherung und vielleicht können wir ein anderes Format wählen, was sich in Excel besser integrieren läßt.

Vielen Dank für Dein Feedback und noch einen schönen Abend.

Lieber Gruß
Laeubchen


  

Betrifft: freut mich von: Michael
Geschrieben am: 21.11.2014 18:29:29

Hallo Läubchen,

klingt nach Test einer Schweißnaht *ohne* sie in der Presse zu zerbrechen.

Spannendes Thema. Wenn ich das richtig verstehe, verwendet Ihr das alles also nur intern, wobei das eingangs beschriebene Problem verschiedener Versionen besteht. Ihr habt ja doch aber nur eine reichlich "endliche" Anzahl von Geräten, mit der Ihr diese Ausdrucke macht, sagen wir 4 oder 5?

Dann bestünde doch die Möglichkeit, die auf dem jeweiligen Rechner vorhandene Version als Anwender-String zu hinterlegen, also etwa so:

dim version as string
version="AcroExch.Document.7"
'MS Office 2003 Adobe 7
ActiveSheet.OLEObjects.Add(ClassType:=version, Link:=False, _
DisplayAsIcon:=False).Activate

Außerdem weißt Du ja, wie welcher Nutzer heißt, also, mit welchem "user" er im Environment hinterlegt ist, so daß Du in VB eigentlich nur ne Verzweigung unterbringen mußt a la
if nutzer="laeubchen" then version = "wie auch immer"
if nutzer="mustermann" then version = "wie auch immer plus x"

Auf alle Fälle wünsche ich einen schönen Urlaub!

Schöne Grüße,

Michael


 

Beiträge aus den Excel-Beispielen zum Thema "Adobe Version bei Öffnen ermitteln"