DisplayAlerts (VB + Word)

Ich bins schonwieder :smile:

Nun mit folgendem Problem: Ich benutze VB6.0 und MS Office Word 2003 und muss die Templatepfadangaben in diversen Dokumenten mit Codeanweisungen automatisch anpassen.

Das Ersetzen der Pfade funktioniert auch soweit. Nur wird die Schlaufe der abzuarbeitenden Dokumente immer durch fehlerhafte Dokumente (schreibgeschĂŒtzt, keine Rechte, usw) unterbrochen. Diese kann ich ja bequem mit ‚On Error‘ abfangen, aber danach lassen sich die Dokumente nicht mehr ohne einen Speicherdialog schliessen.

Es wĂ€re genial, wenn ich diesen Dialog unterdrĂŒcken könnte. Auf der Suche nach einer Lösung bin ich auf ‚DisplayAlerts‘ gestossen, habe aber leicht den Verdacht, dass dies bei Word nicht so recht funktioniert (zumindest bei mir nicht).

Hat jemand Erfahrung mit solch einem Problem? Wie kann ich diesen Speicherdialog (allgemein die Warnungsmeldungen) von Word ausschalten/unterdrĂŒcken?

Danke schon jetzt an jene, die sich die Zeit genommen haben, dies durchzulesen :smile:

Hallo!

Wenn Du Rechte auf dem Verzeichnis hast, kannst Du vorm Öffnen der Dokumente via SetAttr die benötigten Attribute (R/W) setzen. Wenn Rechte nicht passen, wirst Du unter der gleichen Datei nichts Ă€ndern können. WĂ€re ja auch zu einfach, so die Windows-Sicherheitsmechanismen zu umgehen. Wenn jemand anderes aber die Datei geöffnet hat, wird Dir auch das nicht viel helfen. Dann kannst Du die Datei eben nicht zu diesem Zeitpunkt an diesem Ort unter diesem Namen speichern.

Als Alternative speichere doch die Dateien in ein anderes Verzeichnis (z. B. Unterverzeichnis) und kopiere/verschiebe die Dateien am Ende auf einen Rutsch, ggf. mit entsprechenden (Netzwerk-)Rechten.

Gruß, Manfred

Hallo Manfred

Danke fĂŒr deine Tipps. Das Problem liegt jedoch eher darin, dass eine Systemmeldung (Speicherdialog) erscheint beim Schliessen eines Word Dokumentes. Diese Meldung unterbricht dann auch den ganzen Ablauf des Programmes, was dazu fĂŒhrt, dass ein Benutzer die Meldung wegklicken muss, damit das Programm weitergeht.

Mit Applications.DisplayAlerts könne man ja die Systemmeldungen unterdrĂŒcken, was bei mir jedoch nicht funktioniert. Gibt es da eine Alternative?

Gruss & Danke!

Hi!

Danke fĂŒr deine Tipps. Das Problem liegt jedoch eher darin,
dass eine Systemmeldung (Speicherdialog) erscheint beim
Schliessen eines Word Dokumentes. Diese Meldung unterbricht

Was ist denn Dein Code? Und wann kommt die Frage? Wenn Du ein Dokument schließt, kannst Du ĂŒbrigens auch mitgeben, dass nicht gespeichert werden soll


Gruß, Manfred

Hallo Manfred

Den Code, den ich benutzt habe, damit die Systemmeldungen nicht mehr angezeigt werden ist folgender:

Dim objDoc As Object
Set objDoc = CreateObject(„Word.Application“)

objDoc.Documents.Application.DisplayAlerts = -1

Leider erscheinen danach immernoch Systemmeldungen. Es erscheint jedoch keine Fehlermeldung beim Kompilieren, den Befehl „DisplayAlerts“ wird also erkannt, jedoch irgendwie nicht korrekt verarbeitet.

Oder ĂŒberschau ich da etwas?

[Bei dieser Antwort wurde das Vollzitat nachtrÀglich automatisiert entfernt]

Hola!

objDoc.Documents.Application.DisplayAlerts = -1
Leider erscheinen danach immernoch Systemmeldungen. Es

Was laut Word-VBA-Hilfe soweit klar ist: wdAlertsAll=-1, also kommen alle Meldungen. Setz’ den Wert mal auf 0 (=wdAltersNone).

Interessanter wĂ€re aber der Code, der Dateien öffnet, verĂ€ndert und wieder schließt.

Und noch was: FĂŒge mal Microsoft Word zu Deinen Verweisen hinzu, dann kannst Du einfacher statt einem Object ein Word.Application-Objekt erzeugen und hast direkt beim Programmieren via Intellisense immer die möglichen Methoden und Eigenschaften parat.

Gruß, Manfred

Mein Code ist momentan folgender:
Dim objDoc As Object (geht nicht so recht mit Word.Application)
Dim objDocOpen As Object

Set objDoc = CreateObject(„Word.Application“)
objDoc.Visible = False

Set objDocOpen = objDoc.Documents.Open(strFilePath & strFileName)

objDocOpen.attachedTemplate = NewServer & Mid(strPath, 9)

objDoc.Documents.Application.DisplayAlerts = wdAlertsNone
objDocOpen.Save
objDocOpen.Close

Wenn ich ein Dokument ohne vorhandene Dokumenteigenschaften dann schliessen möchte, erscheint der Dialog um diese Eigenschaften zu definieren. Das möchte ich ja verhindern mit dem DisplayAlerts, was aber einfach ignoriert wird

Was mache ich falsch?

Wo mache ich den Fehler?

Wenn ich ein Dokument ohne vorhandene Dokumenteigenschaften
dann schliessen möchte, erscheint der Dialog um diese
Eigenschaften zu definieren. Das möchte ich ja verhindern mit
dem DisplayAlerts, was aber einfach ignoriert wird

Um was fĂŒr Dokumenteigenschaften geht’s denn hier? Welcher Dialog kommt, und wann? Beim Save? Oder beim Close? Oder beim Setzen des AttachedTemplate?

Gruß, Manfred