Forums Neueste Beiträge
 

Formatvorlagen Word 2007 und SharePoint

02/02/2008 - 15:10 von Alex Z. | Report spam
Ich habe folgendes Problem: Wir haben in unserer Firma nun Word-Vorlagen mit
Makros durch die ein Dateiname anhand der Dokumenteneigenschaften vorgegeben
wrid. Dies funktioniert wunderbar solange die dotm-Dateien auch lokal liegen.
Sobald sie aber aus dem SharePoint oder aus dem synchronisierten Outlook
geöffnet werden passiert beim Speichern folgendes:
- Es wird weiterhin dotm und nicht docx oder doc vorgegeben
- Stellt man das Format auf docx und drückt speichern, passiert nichts!
- Làsst man dotm als Format wird die Datei korrekt abgespeichert

Hier die verwendeten Makros:

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



Sub FileSave()
If ActiveDocument.Type = wdTypeTemplate Or ActiveDocument.Path = "" Then
Call FileSaveAs
Exit Sub
Else
ActiveDocument.Save
End If
End Sub

Sub FileSaveAs()
Dim DocName As String
With ActiveDocument
DocName = Format(Date, "yyyymmdd") & "_" &
ActiveDocument.BuiltInDocumentProperties(1) & "_Atoss_Besuchsbericht" & "_" &
ActiveDocument.BuiltInDocumentProperties(2) & "_" & Application.UserInitials
End With
With Dialogs(wdDialogFileSaveAs)
.Name = DocName
.Show
ActiveDocument.Save
End With
Dim aStory As Range
Dim aField As Field

For Each aStory In ActiveDocument.StoryRanges

For Each aField In aStory.Fields
aField.Update
Next aField

Next aStory
End Sub
Sub AutoOpen()
'
' AutoOpen Makro
'
'
Dim aStory As Range
Dim aField As Field

For Each aStory In ActiveDocument.StoryRanges

For Each aField In aStory.Fields
aField.Update
Next aField

Next aStory
End Sub
 

Lesen sie die antworten

#1 Thomas Gahler
04/02/2008 - 18:04 | Warnen spam
Hallo Alex


Ich habe folgendes Problem: [...]


Sorry ich muss dazu passen :-(


Mir ist nur etwas kleines an deinem Code aufgefallen

For Each aField In aStory.Fields
aField.Update
Next aField



Du kannst diese Schlaufe durch folgend Zeile ersetzen
- aStory.Fields.update

ist kürzer und somit auch schneller



For Each aStory In ActiveDocument.StoryRanges
For Each aField In aStory.Fields
aField.Update
Next aField
Next aStory


Mit diesem Konstrukt werden noch lange nicht alle Felder aktualisiert. Du
musst dich zusàtzlich um den .NextStoryRange kümmern.

Ein Beilspiel, das Christian vor ein paar Tagen gepostet hat sieht so aus


For Each rngDoc In oDoc.StoryRanges
rngDoc.Fields.Update
While Not (rngDoc.NextStoryRange Is Nothing) '<- wichtig
Set rngDoc = rngDoc.NextStoryRange
rngDoc.Fields.Update
Wend
Next rngDoc


...und jetzt fehlen die noch die Verzeichnisse (Inhalts-,
Abbildungsverzeichnis usw.)




Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen