Supportnet / Forum / Textverarbeitung
automatische Nummerierung bei neuen Dokumenten
Frage
Hallo liebe Supporter,
ich schlage mich jetzt leider schon seit einigen Tagen mit folgendem Problem rum:
Ich möchte ein Dokument (oder besser eine dot-Vorlage) erstellen, die mir immer eine fortlaufende Nummer z.B. in der Überschrift für jedes neue Dokument erstellt. (Das Format ist erstmal egal... z.B. 00001, 00002 usw.)
Ich habe da keinen wirklichen Weg mittels Makro oder so gefunden.
Hat da jemand vielleicht eine rettende Idee? (Makro oder sonst was?!?)
Wichtig ist mir dabei allerdings, daß ich eben nicht mehr selbst auf die Nummerierung achten muß und (wenn das auch geht!?!) daß ich ggf. den "Nummernkreis" (dauerhaft) ändern, d.h. nächstes Jahr z.B. eine andere Nummerierung einstellen kann.
Vielen herzlichen Dank,
Dennis
Antwort 1 von piano
Hallo
Hier vielleicht die Lösung:
Dieser Makro (in normal.dot) hat eine Vorlage test.dot als Basis. In dieser gibt es die Textmarke LfdNr mit dem Anfangswert 0.
Die Vorlage wird gelesen, der Zähler fortgeschrieben und dann ein neues Dokument mit dieser Vorlage erstellt.
Du brauchst nur die Pfade und ev. den Textmarkennamen ändern.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Hier vielleicht die Lösung:
Sub Weiterzählen()
'
Dim Zähl
ChangeFileOpenDirectory _
"G:\Dokumente und Einstellungen\xxxx\Anwendungsdaten\Microsoft\Vorlagen\"
Documents.Open FileName:="test.dot", ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.GoTo What:=wdGoToBookmark, Name:="LfdNr"
With Selection.Find
Zähl = Val(Selection) + 1
Selection.TypeText Text:=Zähl
End With
Selection.TypeParagraph
ActiveDocument.Save
ActiveDocument.Close
Documents.Add Template:= _
"G:\Dokumente und Einstellungen\xxxx\Anwendungsdaten\Microsoft\Vorlagen\test.dot" _
, NewTemplate:=False, DocumentType:=0
End Sub
Dieser Makro (in normal.dot) hat eine Vorlage test.dot als Basis. In dieser gibt es die Textmarke LfdNr mit dem Anfangswert 0.
Die Vorlage wird gelesen, der Zähler fortgeschrieben und dann ein neues Dokument mit dieser Vorlage erstellt.
Du brauchst nur die Pfade und ev. den Textmarkennamen ändern.
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Dennis Galander
Hi Piano,
also ich habe das Ding jetzt mal ausprobiert. Dabei ergab sich noch ein kleines Problem:
die Textmarke wird offensichtlich beim Schreiben des neuen Wertes überschrieben (die TypeText-Methode überschreibt den Selection-Bereich, damit verschwindet die Textmarke), so daß beim zweiten Aufruf des Makros der Fehler erscheint, daß die Textmarke nicht vorhanden sei.
Leider habe ich mit Word (noch) nicht genug Erfahrung, um jetzt zu wissen, wie ich das Problem umgehen kann. Ich habe leider keine Möglichkeit gefunden, den "Inhalt" der Textmarke zu ersetzen. Und leider habe ich auch nicht herausgefunden, wie ich die Textmarke danach KORREKT wieder einfügen kann.
Hast Du da vielleicht noch einen Tipp?
Trotzdem ersteinmal vielen Dank für die Hilfe.
Gruß
Dennis
P.S. Das Attribut XMLTransform gehört zu welcher WinWord-Version? Ich habe OfficeXP... ich weiß, daß diese Option nicht wichtig ist. Nur rein interessenhalber!
also ich habe das Ding jetzt mal ausprobiert. Dabei ergab sich noch ein kleines Problem:
die Textmarke wird offensichtlich beim Schreiben des neuen Wertes überschrieben (die TypeText-Methode überschreibt den Selection-Bereich, damit verschwindet die Textmarke), so daß beim zweiten Aufruf des Makros der Fehler erscheint, daß die Textmarke nicht vorhanden sei.
Leider habe ich mit Word (noch) nicht genug Erfahrung, um jetzt zu wissen, wie ich das Problem umgehen kann. Ich habe leider keine Möglichkeit gefunden, den "Inhalt" der Textmarke zu ersetzen. Und leider habe ich auch nicht herausgefunden, wie ich die Textmarke danach KORREKT wieder einfügen kann.
Hast Du da vielleicht noch einen Tipp?
Trotzdem ersteinmal vielen Dank für die Hilfe.
Gruß
Dennis
P.S. Das Attribut XMLTransform gehört zu welcher WinWord-Version? Ich habe OfficeXP... ich weiß, daß diese Option nicht wichtig ist. Nur rein interessenhalber!
Antwort 3 von piano
muß leider jetzt weg, Tip kommt Freitag
Antwort 4 von Dennis Galander
Naja,
bloß keine Eile! ;)
Dennis
bloß keine Eile! ;)
Dennis
Antwort 5 von piano
Hier, das sollte funktionieren:
(bei mir ging die obige Version auch, kann es aber auch nicht mehr nacvollziehen, warum!)
Die Lösung ist vielleicht nicht die sauberste, aber was solls! Hier wird die Textmarke nach Überschreiben einfach wieder eingefügt:
Gruß piano
(bei mir ging die obige Version auch, kann es aber auch nicht mehr nacvollziehen, warum!)
Die Lösung ist vielleicht nicht die sauberste, aber was solls! Hier wird die Textmarke nach Überschreiben einfach wieder eingefügt:
Sub Weiterzählen()
'
Dim Zähl
ChangeFileOpenDirectory _
"G:\Dokumente und Einstellungen\xxxx\Anwendungsdaten\Microsoft\Vorlagen\"
Documents.Open FileName:="test.dot", ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
Selection.GoTo What:=wdGoToBookmark, Name:="LfdNr"
With Selection.Find
Zähl = Val(Selection) + 1
Selection.Text = Zähl
Selection.Bookmarks.Add "LfdNr"
End With
ActiveDocument.Save
ActiveDocument.Close
Documents.Add Template:= _
"G:\Dokumente und Einstellungen\xxxx\Anwendungsdaten\Microsoft\Vorlagen\test.dot" _
, NewTemplate:=False, DocumentType:=0
End Sub
Gruß piano
Antwort 6 von Dennis Galander
Hi Piano,
schön, wenn Lösungen so einfach sein können. Ich hatte eine - bei weitem kompliziertere - Version gebastelt....
Ich danke Dir nochmals für die Hilfe.
Gruß
Dennis
P.S. Supporter aller Länder.... lasst's Euch gut gehen. ;)
schön, wenn Lösungen so einfach sein können. Ich hatte eine - bei weitem kompliziertere - Version gebastelt....
Ich danke Dir nochmals für die Hilfe.
Gruß
Dennis
P.S. Supporter aller Länder.... lasst's Euch gut gehen. ;)

