Nils J.
vor 20 Jahren
Hallo und moin moin,
habe mal wieder eine kurze Frage:
Ich habe in Word zwei Vorlagen mit Textmarken. Zum Ausfüllen dieser Vorlagen
habe ich je ein Formular entworfen, welches beim Erstellen eines neuen
Dokumentes auf Basis dieser Vorlage automatisch angezeigt wird.
Der Anwender füllt dieses Formular aus. Anschließend klickt er auf "ok".
Dann wird geprüft, ob alle Felder ausgefüllt sind. Ist dies der Fall, so wird
der Drucken-Dialog angezeigt, damit der Anwender das Dokument ausdrucken kann.
Sobald der Anwender den Druckauftrag erteilt hat, soll das Dokument
geschlossen werden. Ist kein weiteres Dokument in Word geöffnet, so soll Word
komplett geschlossen werden. Das jeweilige Dokument wird nicht gespeichert,
da es wie gesagt nur als Vorlage für Ausdrucke verwendet wird.
Und nun zum Knackpunkt: In dem einen Dokument funktioniert dies wunderbar.
Im anderen nicht.
Beim Ausführen der nicht funktionierenden Vorlage erhalte ich nach dem
Absenden des Druckauftrags immer die Meldung, dass Word gerade druckt mit der
Frage ob ich Word wirklich beenden möchte. Klicke ich dort auf "ja", so wird
der Druckauftrag abgebrochen.
Die Programmierung ist an dieser Stelle jedoch in beiden Vorlagen identisch.
[snip...]
Me.Hide 'Formular wird versteckt
Dialogs(wdDialogFilePrint).Show 'Druckdialog wird angezeigt
Dim i As Integer
'Prüfen ob mehrere Dokumente geöffnet sind. Wenn nicht, Word beenden
'sonst nur das Dokument schließen.
i = 0
Dim doc As Document
For Each doc In Documents
i = i + 1
Next doc
If i > 1 Then
ActiveDocument.Saved = True
ActiveDocument.Close
Else
ActiveDocument.Saved = True
Application.Quit
End If
[/snip...]
Und als ob das noch nicht genug wäre: Führe ich den Code nach dem Klicken
auf "ok" im Formular Schritt für Schritt aus, so taucht das Problem nicht auf.
Es scheint mir, als ob aus irgendwelchen unerfindlichen Gründen der Code in
dieser Vorlage zu schnell abgearbeitet würde.
Hat jemand eine Idee, woran das liegen kann.
Hab' ich da irgendwo (Denk-)Fehler oder gibt es eine andere / bessere Lösung?
Bin für jeden Tipp und Hinweis sehr dankbar.
Viele Grüße und noch einen schönen Tag
Nils
habe mal wieder eine kurze Frage:
Ich habe in Word zwei Vorlagen mit Textmarken. Zum Ausfüllen dieser Vorlagen
habe ich je ein Formular entworfen, welches beim Erstellen eines neuen
Dokumentes auf Basis dieser Vorlage automatisch angezeigt wird.
Der Anwender füllt dieses Formular aus. Anschließend klickt er auf "ok".
Dann wird geprüft, ob alle Felder ausgefüllt sind. Ist dies der Fall, so wird
der Drucken-Dialog angezeigt, damit der Anwender das Dokument ausdrucken kann.
Sobald der Anwender den Druckauftrag erteilt hat, soll das Dokument
geschlossen werden. Ist kein weiteres Dokument in Word geöffnet, so soll Word
komplett geschlossen werden. Das jeweilige Dokument wird nicht gespeichert,
da es wie gesagt nur als Vorlage für Ausdrucke verwendet wird.
Und nun zum Knackpunkt: In dem einen Dokument funktioniert dies wunderbar.
Im anderen nicht.
Beim Ausführen der nicht funktionierenden Vorlage erhalte ich nach dem
Absenden des Druckauftrags immer die Meldung, dass Word gerade druckt mit der
Frage ob ich Word wirklich beenden möchte. Klicke ich dort auf "ja", so wird
der Druckauftrag abgebrochen.
Die Programmierung ist an dieser Stelle jedoch in beiden Vorlagen identisch.
[snip...]
Me.Hide 'Formular wird versteckt
Dialogs(wdDialogFilePrint).Show 'Druckdialog wird angezeigt
Dim i As Integer
'Prüfen ob mehrere Dokumente geöffnet sind. Wenn nicht, Word beenden
'sonst nur das Dokument schließen.
i = 0
Dim doc As Document
For Each doc In Documents
i = i + 1
Next doc
If i > 1 Then
ActiveDocument.Saved = True
ActiveDocument.Close
Else
ActiveDocument.Saved = True
Application.Quit
End If
[/snip...]
Und als ob das noch nicht genug wäre: Führe ich den Code nach dem Klicken
auf "ok" im Formular Schritt für Schritt aus, so taucht das Problem nicht auf.
Es scheint mir, als ob aus irgendwelchen unerfindlichen Gründen der Code in
dieser Vorlage zu schnell abgearbeitet würde.
Hat jemand eine Idee, woran das liegen kann.
Hab' ich da irgendwo (Denk-)Fehler oder gibt es eine andere / bessere Lösung?
Bin für jeden Tipp und Hinweis sehr dankbar.
Viele Grüße und noch einen schönen Tag
Nils