Document_Close() Problem

03/08/2008 - 14:00 von jensspeedy | Report spam
ich möchte das Klicken in einem Dokument oben rechts auf das Kreuz
abfangen und mein eigenes "FileSave" aufrufen, da ich einen
Namensvorschlag für ein noch nicht gespeichertes Dokument machen MUSS.
Funktioniert auch soweit - nur dass jetzt eben Messageboxen doppelt
kommen - einmal die aus dem "Document_close"-Ablauf und die von
"Speichern unter" zum Beispiel.

Wie kann ich die Messageboxen vom "Document_Close" unterdrücken? Oder
hat einer von Euch ne bessere Idee.

Bis jetzt kommt der Namensvorschlag bei F12, wenn ich auf das
Diskettensymbol klicke, bei "Datei speichern unter" und eben bei
"Datei schließen" - ich muss eben nur dieses Klicken auf das Kreuz
oben rechts abfangen und umleiten.

Code in "ThisDocument" bisher:[code}
Sub document_close()
Call FileSave
End Sub

Sub FileClose()
Dim DocName As String
Dim Nummer As String
Dim Nummer2 As String
Dim Nummer3 As Long

Nummer = Modul1.solutions1_1
Nummer2 = Modul1.solutions1_2
Nummer3 = Modul1.solutions1_2

With ActiveDocument
Dim Punkt As String
If Nummer3 > 0 Then
Punkt = "."
DocName = Nummer & Punkt & Format(Nummer2, "00000") & " - " &
Format(Date, "yyyy-mm-dd") & " - " &
ActiveDocument.BuiltInDocumentProperties("Title")
Else
DocName = Nummer & " - " & Format(Date, "yyyy-mm-dd") & " - "
& ActiveDocument.BuiltInDocumentProperties("Title")
End If


End With

' With Dialogs(wdDialogFileSaveAs)
'.Name = DocName
'.Show
' End With

Dim UserAntwort As String

If Not ActiveDocument.Saved Then
UserAntwort = MsgBox(Prompt:="Möchten Sie Änderungen in " &
ActiveDocument.Name & " speichern?", _
Buttons:=vbYesNoCancel + vbExclamation)
Select Case UserAntwort
Case Is = "", vbCancel
Exit Sub
Case Is = vbNo
ActiveDocument.Close (wdDoNotSaveChanges)
Case Is = vbYes
If ActiveDocument.Path = "" Then
FileSaveAs
ActiveDocument.Close (wdDoNotSaveChanges)
Else
ActiveDocument.Close (wdSaveChanges)
End If
End Select
Else
ActiveDocument.Close (wdDoNotSaveChanges)
End If
End Sub

Sub einfachzumachen()
activewindow.Close
End Sub

Sub FileSave()
If ActiveDocument.Path = "" Then
FileSaveAs
Exit Sub
End If
End Sub

Sub FileSaveAs()
Dim DocName As String
Dim Nummer As String
Dim Nummer2 As String
Dim Nummer3 As Long

Nummer = Modul1.solutions1_1
Nummer2 = Modul1.solutions1_2
Nummer3 = Modul1.solutions1_2

With ActiveDocument
Dim Punkt As String
If Nummer3 > 0 Then
Punkt = "."
DocName = Nummer & Punkt & Format(Nummer2, "00000") & " - " &
Format(Date, "yyyy-mm-dd") & " - " &
ActiveDocument.BuiltInDocumentProperties("Title")
Else
DocName = Nummer & " - " & Format(Date, "yyyy-mm-dd") & " - "
& ActiveDocument.BuiltInDocumentProperties("Title")
End If


End With

With Dialogs(wdDialogFileSaveAs)
.Name = DocName
.Show
End With
End Sub[/code]

wie bekomme ich also die Message-Boxen vom "Document_Close"-Event weg?

für nen Tipp wàre ich Dankbar - Euch nen tollen Sonntag
 

Lesen sie die antworten

#1 Udo Riesmeier
19/09/2008 - 12:44 | Warnen spam
Du musst dir die Applikationsevents nehmen und dort das Beforesave-Event
nutzen. Dort gibt es auch ein cancel, welchen dann die "eigentliche"
nachfrage wiederum unterdrückt, inden du Cancel = 1 setzen kannst.
Allerdings musst du bei den Applikationsevents prüfen, ob das auch deine
datei ist, in der du das anders machen mölchtest. Die Doc wird dir aber im
Event mitübergeben.



Gruß

Udo



"jensspeedy" schrieb im Newsbeitrag
news:
ich möchte das Klicken in einem Dokument oben rechts auf das Kreuz
abfangen und mein eigenes "FileSave" aufrufen, da ich einen
Namensvorschlag für ein noch nicht gespeichertes Dokument machen MUSS.
Funktioniert auch soweit - nur dass jetzt eben Messageboxen doppelt
kommen - einmal die aus dem "Document_close"-Ablauf und die von
"Speichern unter" zum Beispiel.

Wie kann ich die Messageboxen vom "Document_Close" unterdrücken? Oder
hat einer von Euch ne bessere Idee.

Bis jetzt kommt der Namensvorschlag bei F12, wenn ich auf das
Diskettensymbol klicke, bei "Datei speichern unter" und eben bei
"Datei schließen" - ich muss eben nur dieses Klicken auf das Kreuz
oben rechts abfangen und umleiten.

Code in "ThisDocument" bisher:[code}
Sub document_close()
Call FileSave
End Sub

Sub FileClose()
Dim DocName As String
Dim Nummer As String
Dim Nummer2 As String
Dim Nummer3 As Long

Nummer = Modul1.solutions1_1
Nummer2 = Modul1.solutions1_2
Nummer3 = Modul1.solutions1_2

With ActiveDocument
Dim Punkt As String
If Nummer3 > 0 Then
Punkt = "."
DocName = Nummer & Punkt & Format(Nummer2, "00000") & " - " &
Format(Date, "yyyy-mm-dd") & " - " &
ActiveDocument.BuiltInDocumentProperties("Title")
Else
DocName = Nummer & " - " & Format(Date, "yyyy-mm-dd") & " - "
& ActiveDocument.BuiltInDocumentProperties("Title")
End If


End With

' With Dialogs(wdDialogFileSaveAs)
'.Name = DocName
'.Show
' End With

Dim UserAntwort As String

If Not ActiveDocument.Saved Then
UserAntwort = MsgBox(Prompt:="Möchten Sie Änderungen in " &
ActiveDocument.Name & " speichern?", _
Buttons:=vbYesNoCancel + vbExclamation)
Select Case UserAntwort
Case Is = "", vbCancel
Exit Sub
Case Is = vbNo
ActiveDocument.Close (wdDoNotSaveChanges)
Case Is = vbYes
If ActiveDocument.Path = "" Then
FileSaveAs
ActiveDocument.Close (wdDoNotSaveChanges)
Else
ActiveDocument.Close (wdSaveChanges)
End If
End Select
Else
ActiveDocument.Close (wdDoNotSaveChanges)
End If
End Sub

Sub einfachzumachen()
activewindow.Close
End Sub

Sub FileSave()
If ActiveDocument.Path = "" Then
FileSaveAs
Exit Sub
End If
End Sub

Sub FileSaveAs()
Dim DocName As String
Dim Nummer As String
Dim Nummer2 As String
Dim Nummer3 As Long

Nummer = Modul1.solutions1_1
Nummer2 = Modul1.solutions1_2
Nummer3 = Modul1.solutions1_2

With ActiveDocument
Dim Punkt As String
If Nummer3 > 0 Then
Punkt = "."
DocName = Nummer & Punkt & Format(Nummer2, "00000") & " - " &
Format(Date, "yyyy-mm-dd") & " - " &
ActiveDocument.BuiltInDocumentProperties("Title")
Else
DocName = Nummer & " - " & Format(Date, "yyyy-mm-dd") & " - "
& ActiveDocument.BuiltInDocumentProperties("Title")
End If


End With

With Dialogs(wdDialogFileSaveAs)
.Name = DocName
.Show
End With
End Sub[/code]

wie bekomme ich also die Message-Boxen vom "Document_Close"-Event weg?

für nen Tipp wàre ich Dankbar - Euch nen tollen Sonntag

Ähnliche fragen