AW: Datei nicht gefunden
17.02.2011 14:44:17
Heinz
Hallo Franz,
vielen Dank für deine Bemühungen.
Aber so ähnlich hatte ich das schon eingebaut. Wenn ich sofort nachdem der Fehler auftritt, die Datei im Acrobat Reader öffne, funktioniert das anstandslos.
Ich habe auch die Wartezeit in deinem Makro - das ich testhalber statt meiner Version hineinkopiert hatte - auf 30 sec erweitert, leider mit demselben Ergebnis.
Ich werde das einmal auf einem anderen Rechner probieren, vielleicht schaut es dann anders aus.
Hier noch einmal das gesamte Makro:
Sub pdfErstellen(SNr As String, DNameSchule As String, AnzL%, wbB As Workbook, Optional NurErz _
As Boolean)
Dim ws As Worksheet, wsB As Worksheet, wsS As Worksheet, wsL As Worksheet, stDr$, DName$, _
pdfPfad$
Dim datei1 As String, datei2 As String, dTime As Date
Dim newHour%, newMinute%, newSecond%, waitTime As Date, efz&, d%
Set wsL = ThisWorkbook.Worksheets("Log")
Set wsS = ThisWorkbook.Worksheets("Steuerung")
Set ws = ThisWorkbook.Worksheets(SNr)
Set wsB = wbB.Worksheets("Daten")
pdfPfad = ThisWorkbook.Path & "\pdf-Dateien\"
Application.ScreenUpdating = False
DName = "Serienbrief.pdf"
DName = pdfPfad & DName
stDr = Application.ActivePrinter
On Error Resume Next
For d = 0 To 10
Err = 0
Application.ActivePrinter = "Adobe PDF auf Ne" & Format(d, "00") & ":"
If Err = 0 Then Exit For
Next
On Error GoTo 0
ws.PrintOut
Application.ActivePrinter = stDr
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + AnzL * 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
datei1 = DName
datei2 = pdfPfad & "Beitragsgrundlagen " & Year(Date) - 1 & " " & SNr & ".pdf"
dTime = Now
Do
If Dir(datei1) "" Then
VBA.FileCopy Source:=datei1, Destination:=datei2
MsgBox "PDF-Datei wurde kopiert"
Exit Do
Else
'Nach 30 Sekunden abbrechen
If Now - dTime > TimeSerial(0, 0, 30) Then
MsgBox "Datei """ & datei1 & """ nicht gefunden!"
Exit Do
End If
'2 Sekunden warten
Application.Wait Now + TimeSerial(0, 0, 2)
End If
Loop
' Name DName As pdfPfad & "Beitragsgrundlagen " & Year(Date) - 1 & " " & SNr & ".pdf"
' FileCopy DName, pdfPfad & "Beitragsgrundlagen " & Year(Date) - 1 & " " & SNr & ".pdf"
wsS.Range("B11").Value = Date
wsS.Range("B12").Value = Time
'*** Logdaten eintragen
efz = wsL.Cells(Rows.Count, 1).End(xlUp).Row + 1
wsL.Cells(efz, 1).Value = Date
wsL.Cells(efz, 2).Value = Time
wsL.Cells(efz, 3).Value = DNameSchule
End Sub
Gruß
Heinz