Office: offenes PDF schließen

Helfe beim Thema offenes PDF schließen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Und da bin ich schon wieder. nachdem EarlFred mir schon ertklassig dabei geholfen hat ein PDF zu löschen (hier der Link), bin ich nun einen Schritt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Fox88, 14. Februar 2017.

  1. offenes PDF schließen


    Und da bin ich schon wieder.

    nachdem EarlFred mir schon ertklassig dabei geholfen hat ein PDF zu löschen (hier der Link), bin ich nun einen Schritt weiter und gefühlt 5 Niveaus höher.

    Sollte das PDF offen sein, kann ich demzufolge nicht löschen, bzw speichern. Daher will ich prüfen, ob dieses PDF offen ist und es ggf. schließen. (nicht alle offenen PDFs)

    Ich habe schon viele Codes zum Thema PDF-schließen gesehen und probiert, aber ich bekomme sie nicht zum Laufen.

    Mein derzeitiger (wunsch) Weg:

    1. wenn das PDF vorhanden, dann prüfen ob offen, sonst löschen
    Code:
    2. is_open () ist in einem Modul und sieht folgendermaßen aus:
    Code:
    3. In der UserForm ist ein Button, der beim Anklicken call close_pdf (in einem Modul) aufruft.

    Ich hoffe, bis hierhin passt das alles....
    ...denn jetzt wird's interessant. Folgenden Code habe ich im Netz gefunden, verstehe aber wenig davon und kann dementsprechend nicht wirklich einschätzen was ich wie ändern muss/kann um es hinzubekommen.

    Code:
    könnt ihr mich retten?

    Gruß, Felix

    :)
     
  2. Moin Luschi,

    den Code habe ich auch schon gefunden und probiert, allerdings läft da meiner Ansicht nach gar nichts.

    Beim einzelnen durchklicken der Zeilen springt er mir nach If IsFileOpen("pdfOld") Then sofort in zu Function IsFileOpen(pdfOld As String.
    (...die Aussage bezieht sich auf deinen Link)

    Probiere ich es dann mit meinem Sub
    Code:
    jammert er rum, dass die "Sub oder Function nicht definiert" ist...

    ...ich hab wirklich keinen Plan und so langsam (nach 4 Tagen) verzweifle ich.
     
  3. offenes PDF schließen

    Hallo Felix,

    pdfOld ist kein Dateiname, sondern eine String-Variable, die den Dateinamen enthält; deshalb so:
    If Not IsFileOpen(pdfOld) Then
    oder
    If IsFileOpen(pdfOld) = False Then

    Die 'IsFileOpen' liefert False zurück, falls die PDF-Datei nicht geöffnet ist und True, wenn doch.
    Damit die If-Bedingung abgearbeitet wird muß das False in ein True gewandelt werden; beide angeführten Möglichkeiten realisieren das.
    Möchtest Du aber das zurückgelieferte True auswerten, dann genügt:
    If IsFileOpen(pdfOld) Then
    statt
    If IsFileOpen(pdfOld) = True Then

    Gruß von Luschi
    aus klein-Paris
     
  4. Hallo Felix, *Smilie

    nimm von folgendem Link den zweiten Code:

    Bestimmte PDF-Datei schließen...

    Statt "1.pdf" musst Du halt deinen dir ja bekannten Dateinamen eintragen. *wink.gif*

    Servus
    Case
     
    Case_Germany, 16. Februar 2017
    #5
  5. deine Antwort verstehe ich, aber leider nicht, was du mir konkret damit sagen willst. :/

    vba findet die Datei jedenfalls nicht. Und ich vermute es liegt daran, dass mein pdfOld auch den kompletten Pfad beinhaltet. Ist es das?
    Weil wenn ich prüfe, ob die Datei geschlossen ist, er mir mein UserForm anzeigt. (umgekehrte Logik)

    Letztendlich will ich eigentlich nur wissen, was ich wo einsetzen, bzw ändern muss (und wie, also mit welchen Datentypen oder Dateinamen oder Pfaden) damit ich die Sache endlich zum Laufen bekomme.

    Druck 'von oben' und keine Ahnung sind einfach eine blöde Kombination...

    *diese nachricht bezog sich noch auf die von Luschi
     
  6. Dieser Teil will nicht...

    Code:
    ...das heißt, dass hier ein falscher Wert für IsFileOpen ausgegeben werden muss...

    Code:
    Ich habe das PDF geöffnet und strPDF ist jetzt nur noch mein Dateiname, also Test.pdf.
    Aber die UserForm wird nicht geöffnet.

    Was kann ich tun...? *entsetzt
     
  7. offenes PDF schließen

    vielleicht ist dieser Hinweis noch entscheidend:

    der Name des PDFs kann sich ändern... daher wird er in einer Variable des Typs String verpackt.

    @Case: den Code habe ich auch schon gefunden, kann ihn aber auch nicht zum laufen bewegen. Der hängt sich in der Do-Schleife auf.
     
  8. Hallo Felix,

    wenn Du Hilfe erwartest, strukturiere Deine Gedanken, bevor Du lostippst. Im Twitterstil Infos nacheinander rausplappern (sorry für den Ausdruck) hilft keinem. Auch solltest Du sagen, was Du genau willst. Dann könnte man auch in dieser Form helfen:
    Die Function IsOpen() benötigt zwingend den kompletten Pfad&Dateinamen - schließlich soll die Function die Datei auch finden, andernfalls wäre das reiner Zufall.

    Wenn die UF aufgehen soll, wenn die Datei bereits offen ist, ist Dein Code aus Beitrag #7 grundsätzlich richtig.

    Selbstverständlich ist der richtige Dateiname entscheidend. Aber wie soll man diese Information als Außenstehender verarbeiten? Wie, wann und wo ändert sich der Name denn?

    Was ich aus dem Kauderwelsch lese: Ja, die Function wird selbstverständlich gestartet in dieser Zeile - Du fragst doch das Ergebnis ab, also muss die Function arbeiten!

    Bring bitte Struktur in Deine Anfrage. Ansonsten wird das hier nichts geben.

    Grüße
    EarlFred
     
    EarlFred, 16. Februar 2017
    #9
  9. Hi EarlFred,

    entschuldige meinen Stil. Ich bin etwas im Stress und verzweifelt. Daher kommt's wahrscheinlich.
    Allerdings hilft mir deine Antwort schon mal wieder ne Ecke weiter. Z.B. die Sache mit dem Pfad bei IsOpen().

    Ich gehe jetzt aber erstmal in den Feierabend und probiere morgen weiter. Vielleicht hilft eine Nacht Schlaf.

    Ggf, bzw bestimmt melde ich mich morgen wieder.

    Aber Danke euch schonmal!
     
  10. da bin ich wieder...

    mit etwas sortierteren Gedanken und mehr funktionierendem Code.

    Die Prüfung, ob das PDF offen ist klappt und gibt mir auch das richtige Ergebnis.
    Allerdings hänge ich nun beim Code zum Schließen eben dieses PDFs.

    Case hatte einen Code verlinkt, der aber wehrt sich gegen mich.
    Wie weiter oben zu sehen, öffnet sich bei offenem PDF eine UserForm, in der ein Button ist. Bei Betätigung des Buttons soll das UF wieder verschwinden und das PDF geschlossen werden und das Ursprüngliche Speichermakro ausgeführt werden.

    Bzgl. des Codes von Case, weiß ich weder wo genau ich ihn platzieren muss und in welcher Form ich meine PDF angeben muss (mit oder ohne Pfad, mit Anführungszeichen oder ohne...).

    Hier nun mein relevanter Code:
    Code:
    mein Button in der Userform hat dann folgenden Code:
    Code:
    Könnt ihr mir mit auf Basis dieser Ausführungen helfen?

    Gerade was den zweiten eigefügten Code angeht verstehe ich nichts von dem, was dort steht.

    Danke euch!
     
  11. Hallo Felix,

    Code für die Userform:
    Code:
    An der roten Stelle den richtigen Dateinamen finden lassen / eintragen / Verweis auf Variable - wie auch immer Du das willst. Gesucht wird der FENSTERTITEL - und der lautet beim Acrobat
    [Dateiname].[Endung] - [Name des AcrobatReaders (mit Versionshinweis)]

    Durchsucht werden dabei alle offenen Fenstertitel.

    Ich habe noch eine Sicherung eingebaut, falls es den Suchbegriff in mehreren Fenstern geben sollte - kann durchaus vorkommen.

    Unload UserForm1
    Call pdf_close

    Nach dem Entladen der Userform wird dort auch kein Code mehr ausgeführt. "pdf_Close" wird also nie gestartet.


    Grüße
    EarlFred
     
    EarlFred, 17. Februar 2017
    #12
  12. offenes PDF schließen

    ...dass der Code nur dann das Fenster schließen kann, wenn es sich auf dem gleichen Rechner befindet, auf dem auch der Code läuft, muss hoffentlich nicht erwähnt werden....

    Ich tu es vorsorglich trotzdem.

    IsFileOpen prüft hingegen, ob die Datei geöffnet und für andere Anwendungen gesperrt werden kann. Das berücksichtigt auch den Fall, dass sich die Datei auf dem Netzlaufwerk befindet und von einem anderen Nutzer geöffnet ist.
     
    EarlFred, 17. Februar 2017
    #13
  13. vielen Dank für deine Erklärungen.

    Ich habe den Code so übernommen und angepasst.
    Meine PDF-Variable im Sub pdf_close habe ich nun so angepasst, dass sie den Namen strPDFAcRvers = "Name.pdf - Adobe Acrobat Reader DC" heißt.
    Im Code dann folgende Zeile: hWindow = SearchHndByWndName_Parent(strPDFAcRvers) ' mein Dateiname als Variable

    Fehlermeldungen ergibt der Code keine, allerdings ergibt die IF-Abfrage If InStr(strTMP, strSearch) < 0 Then in der Function 0, was dazu führt, dass die MsgBox nicht erscheint. Zudem kommt das Makro dann nicht aus der Do While Not-Schleife raus.

    Ich habe (blind und ungeahnt der Auswirkungen) in der IF-Abfrage das
     
  14. Hall Felix,

    anstelle blindlings irgendwas rumzufummeln lies einfach nochmal, was in der rot markierten Codezeile steht.

    nein, tust Du, bezogen auf das Schließen von Dateien, nicht: Das geht so nicht, wenn die auf einem anderen Rechner offen sind.

    Grüße
    EarlFred
     
    EarlFred, 19. Februar 2017
    #15
Thema:

offenes PDF schließen

Die Seite wird geladen...
  1. offenes PDF schließen - Similar Threads - offenes PDF schließen

  2. offene Word-Datei per VBA speichern

    in Microsoft Excel Hilfe
    offene Word-Datei per VBA speichern: Guten Abend zusammen, mit dem nachfolgenden Code öffne ich ein OLE-Objekt (Word-Datei) aus Excel heraus. Sheets("WORD").Select ActiveSheet.Shapes.Range(Array("Object 7")).Select...
  3. Etwas aus meiner Praxis

    in Microsoft Access Hilfe
    Etwas aus meiner Praxis: Ich habe altersbedingt meine berufliche Karriere beendet. Ich glaube, dass einige meiner Access-Spielchen einen bestimmten didaktischen Wert und Nutzen haben können. Alle Datenbanken sind offen...
  4. PDF Export abbrechen wenn Datei offen

    in Microsoft Excel Hilfe
    PDF Export abbrechen wenn Datei offen: Hallo zusammen, ich schon wieder. Code: If Mappenname = ReadOnly = True Then Application.DisplayAlerts = False Worksheets("Angebot (2)").Delete Application.DisplayAlerts = True Exit Sub End If...
  5. offenes Word-Dokument schließen

    in Microsoft Excel Hilfe
    offenes Word-Dokument schließen: Hallo, ich Teste grad wie man per Excel-VBA eine Word-Datei öffnet inkl. des Deaktivierens vom Schreibschutz. Öffnen u. Schreibschutz deaktivieren funktioniert schon mal super. Aber Schließen...
  6. offene Datenbank speichern

    in Microsoft Access Hilfe
    offene Datenbank speichern: Hallo, ich habe eine Datenbank, die möchte ich gern hier unter User = "Dokumente" speichern: anschließen bestätigen: MsgBox "Datenbank wurde hier gespeichert > " & Environ$("USERPROFILE") &...
  7. VBA Excel + nach offenen IE Fenster suchen und Element ohne ID klicken

    in Microsoft Excel Hilfe
    VBA Excel + nach offenen IE Fenster suchen und Element ohne ID klicken: Hallo Zusammen, viele Male konnte ich hier im Forum wertvolle Informationen finden und mein laienwissen erweitern. Jetzt stehe ich vor einem kleinen Problem, für dass ich keine Lösung finde....
  8. VBA: Im offenen IExplorer ein Objekt ohne ID klicken

    in Microsoft Excel Hilfe
    VBA: Im offenen IExplorer ein Objekt ohne ID klicken: Hallo Zusammen, viele Male konnte ich hier im Forum wertvolle Informationen finden und mein laienwissen erweitern. Jetzt stehe ich vor einem kleinen Problem, für dass ich keine Lösung finde....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden