Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBA kann BATCH nicht starten

Frage Entwicklung VB for Applications

Mitglied: Sys3D

Sys3D (Level 1) - Jetzt verbinden

20.02.2006, aktualisiert 23.02.2006, 11353 Aufrufe, 5 Kommentare

Hi!

Ziel: Automatische PDF erstellung, sobalt man ein Dokument öffnet.

Folgend meine Anwendung:

Sobald ein Dokument mit Word geöffnet wird, startet ein VBA-Code, welcher den Dokumentennamen ausließt eine Postscriptdatei generiert und anschließend eine BAT-Datei erstellt (FreePDF/ghostscript kann automatisiert nur mit BAT-Dateien gesteuert werden).
Sobald diese BAT-Datei erstellt ist, wird sie von dem VBA-Code gestartet und das PDF mit dem richtigen Namen (also gleich wie der .doc-name) in einem festgelegten Verzeichnis abgespeichert.

Problem: Wenn der VBA-Code die BAT startet, ist das erstellte PDF leer. Klickt der User jedoch auf die eben von VBA erstellte BAT-Datei, wird das PDF ordnungsgemäß erstellt.

Ich bin ratlos.
Mitglied: maneich
21.02.2006 um 01:31 Uhr
Hallo,

so wie ich das sehe, wird die Batch zwar erstellt aber nicht direkt aktiviert.

Zweite Möglichkeit, die Batch ist noch nicht fertig erstellt und kann deshalb beim aktivieren die Aufgabe nicht durchführen; was ich für wahrscheinlicher halte.

2. Möglichkeiten:

1. zwischen Erstellung und Aktivierung eine kleine Pause machen mit wait oder sleep, gib es bestimmt auch in VBA.

2. im grunde genommen kannst Du hier auch eine Standardbatch erstellen und in Word dann nur noch die Parameter übergeben. Dann brauchst Du auch keine Pause dazwischen.

MfG maneich
Bitte warten ..
Mitglied: Sys3D
22.02.2006 um 10:49 Uhr
Hi!

Habe nach jedem Schritt Pausen von 5 sec. eingebaut. PDF ist trotzdem leer.
Es erscheint mir, als ob die BATCH von etwas geschlossen würde.
Hier mal der Code:

Sub anfang()

Dim Pausenlänge3
Pausenlänge3 = Timer + 5 ' Dauer festlegen.
Do While Timer <= Pausenlänge3
' DoEvents
Loop


Call CreatePostScript
Dim doc As String
doc = ActiveDocument.Name
doc = Left(doc, Len(doc) - 4)

Dim Pausenlänge1
Pausenlänge1 = Timer + 5 ' Dauer festlegen.
Do While Timer <= Pausenlänge1
' DoEvents
Loop

Call createFile(doc)

Dim Pausenlänge2
Pausenlänge2 = Timer + 5 ' Dauer festlegen.
Do While Timer <= Pausenlänge2
' DoEvents
Loop

'Call ExecCommand("D:\createPDF.bat")
'Shell ("D:\start_Creator.bat")
'Shell ("D:\start_pdf_creation.exe")
Shell ("D:\createPDF.bat")

Dim Pausenlänge4
Pausenlänge4 = Timer + 5 ' Dauer festlegen.
Do While Timer <= Pausenlänge4
' DoEvents
Loop
End Sub

Public Function createFile(strFilename As String)
Dim fso, erstellen
Set fso = CreateObject("Scripting.FileSystemObject")
Set erstellen = fso.CreateTextFile("D:\createPDF.bat", True)
erstellen.writeline ("C:\Programme\gs8.51\bin\gswin32c.exe -q -dNOSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dCompatibilityLevel=1.3 -dPDFSETTINGS=/prepress -dLockDistillerParams=false -dAutoRotatePages=/PageByPage -dEmbedAllFonts=true -dSubsetFonts=true -r600 -dDownsampleMonoImages=true -dMonoImageDownsampleThreshold=1.5 -dMonoImageDownsampleType=/Bicubic -dMonoImageResolution=300 -dDownsampleGrayImages=true -dGrayImageDownsampleThreshold=1.5 -dGrayImageDownsampleType=/Bicubic -dGrayImageResolution=150 -dDownsampleColorImages=true -dColorImageDownsampleThreshold=1.5 -dColorImageDownsampleType=/Bicubic -dColorImageResolution=75 -dConvertCMYKImagesToRGB=false -sOutputFile=""C:\Dokumente und Einstellungen\dewea051\Desktop\nadler\nach\" & strFilename & ".pdf"" -c .setpdfwrite -f C:\DOKUME~1\dewea051\Desktop\Nadler\vor\" & strFilename & ".ps")
erstellen.Close

End Function

Public Function CreatePostScript()

Dim doc As String
doc = ActiveDocument.Name
doc = Left(doc, Len(doc) - 4)

ActivePrinter = "FreePDF XP"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="", PageType:=wdPrintAllPages, _
Collate:=True, Background:=True, PrintToFile:=True, OutputFileName:="C:\Dokumente und Einstellungen\dewea051\Desktop\Nadler\vor\" & doc & ".ps", _
Append:=False


End Function
Bitte warten ..
Mitglied: maneich
22.02.2006 um 17:32 Uhr
Hallo,

zu VBA kann ich eigentlich nicht viel sagen und wie Du in Deinem ersten Thread erwähnt hast, läuft die Batch dann ja auch, wenn sie nach dem Erstellen mit Deinem Script, angeklickt wird.

Hier wieder 2. Möglichkeiten:

1. Starte die Batch mit

Shell ("start /w D:\createPDF.bat")

2. schreibe vor dem Programmaufruf in der Batch 1 Zeile mit

sleep 5

muß mal getestet werden.

Noch etwas, soweit ich dies in meinen Unterlagen "VBA für Word" ersehen kann, werden Programme ohne Klammer gestartet, also

Shell "start /w D:\createPDF.bat"

Da ich aber selbst nicht mit VBA arbeite, mußt du es schon mal selbst testen.

MfG maneich
Bitte warten ..
Mitglied: Sys3D
23.02.2006 um 09:32 Uhr
Hi!

Wenn ich das "start /w" einsetze, erscheint "Laufzeitfehler 53. Nicht gefunden..."
Sleep 5 wird von der BAT nicht erkannt, d.h. es erscheint Befehl nicht gefunden...

Was mir aufgefallen ist: Wenn ich das Windows neu starte, funktioniert die ganze Anwendung ein mal. Also einmal wird ein komplettes PDF erstellt, folgende Versuche führen zu einem leeren PDF.

?¿?¿
Bitte warten ..
Mitglied: maneich
23.02.2006 um 11:46 Uhr
Hallo,

1. wenn die Batch den Befehl "sleep x" nicht definieren kann, würde ich mal sagen, daß Deine Systempfade nicht optimal sind.

2. ab W2K ist ja nicht mehr die Command.com sondern die CMD.EXE für Batches zuständig und die Endung für Batches ist hier .cmd. Aus Kompatibilitätsgünden erkennt die CMD.EXE auch .bat-Dateien. Möglicherweise hat VBA Probleme damit.

Also probiere mal Deine Batch mit der endung .cmd oder starte die Batch mal mit

Shell("%comspec% /c ""D:\createPDF.bat""")

MfG maneich
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Mehrere Batch aus einer heraus starten
Frage von chb1982Batch & Shell2 Kommentare

Hallo zusammen, das Internet ist voll mit meinem Problem, aber eine Lösung wollte es mir nicht präsentieren. Oder ich ...

Batch & Shell
Batch will start Anweisung nicht ausführen
gelöst Frage von zeroblue2005Batch & Shell7 Kommentare

Hallo Zusammen, ich brauche mal Hilfe. Ich habe hier die Batch vom Programm ApcUPS die eine USV steuert! Das ...

Batch & Shell
Batch im Vollbild und mit Adminrechten starten
gelöst Frage von anmelderBatch & Shell2 Kommentare

Ich benutze diesen Code um die Batch im Vollbild zu starten. Aus der Konsole aufgerufen arbeitet die Batch wie ...

Batch & Shell
Batch minimiert starten
gelöst Frage von pdiddoBatch & Shell3 Kommentare

Hi, ich möchte gerne mein Batch minimiert starten. Es soll kein schwarzes Fenster aufploppen! Ich möchte aber nicht mit ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 4 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 8 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 8 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 11 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...