MAkro für fortlaufende vertragsnummer?
Ich möchte ein MAkro für eine fortlaufende Vertagsnummer erstellen.
Vertragnummer sol mit 260001 straten und beim öffnen automatisch weitervergeben werden
2 Antworten
Extrem hilfreich wäre es, wenn du mindestens das Programm nennen würdest, mit dem du das machen willst.
Probiere folgendes
Drücke ALT + F11, um den Visual Basic for Applications (VBA)-Editor zu öffnen.
Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
Füge den untenstehenden VBA-Code in das Modul ein.
Schließe den VBA-Editor.
Sub AutoOpen()
Dim doc As Document
Set doc = ThisDocument
' Überprüfen, ob im Dokument eine fortlaufende Nummer da ist
On Error Resume Next
Dim num As Long
num = doc.Variables("FortlaufendeNummer").Value
If Err.Number <> 0 Then
' Wenn nicht, setze die Nummer auf 26000
doc.Variables.Add "FortlaufendeNummer", 26000
Else
' Wenn vorhanden, erhöhe die Nummer um 1
doc.Variables("FortlaufendeNummer").Value = doc.Variables("FortlaufendeNummer").Value + 1
End If
On Error GoTo 0
' Aktualisiere das Dokument
doc.Fields.Update
End Sub
Jetzt wird die fortlaufende Nummer beim Öffnen des Dokuments automatisch erhöht, beginnend bei 26000
Du kannst die Nummer in deinem Dokument an der gewünschten Stelle einfügen, indem du Einfügen > Feld wählst und dann das Feld DOCVARIABLE FortlaufendeNummer
Alternativ könnte es funktionieren, wenn du die Tasten "Alt" und "F9" gleichzeitig drückst und manuell { DOCVARIABLE FortlaufendeNummer } eingibst.
Je nach Wordversion, die du verwendest .
Viel Glück und gutes Gelingen
Hm. Seltsam. Bei mir geht's. Ich habe auch eine etwas ältere Wordversion.Sollte aber aufwärtskompatibel sein. Welche Version hast du denn?
Macro hast du eingeschaltet? Word-Datei als Macro gespeichert?
Sonst irgendwelche Fehlermeldungen? Hast du mal geschaut, welchen Wert "num" hat?
Ich sehe gerade, in der App ist die Zeile nach "else" nicht ganz sichtbar, nur auf dem PC. Aber vorhanden ist die ganze Zeile....
ja. Das ist, weil du bereits eine Nummer im Dokument hast.
Das prüfst du im Makro ab. Da steht ja, wenn nicht, mach 26000 sonst 26000+1
Setze halt den Zähler zurück. Mache dazu ein kleines "Sondermakro".
Sub Zuruecksetzen()
Dim doc As Document
Set doc = ThisDocument
' Setze die Nummer auf den Startwert zurück
doc.Variables("FortlaufendeNummer").Value = 260000
' Aktualisiere das Dokument, um die geänderte Nummer anzuzeigen
doc.Fields.Update
End Sub
Lasse das Makro "Zurücksetzen" laufen und du hast den Zähler 260000
(Oder eine x-beliebige Zahl)
Ich würde eine Dokumentenvorlage (dotm) erstellen.
Wenn du davon ein Dokument ableitest und speicherst, könntest du einen Zähler wie folgt definieren:
Private Sub Document_New()
Dim ID As Long
Dim sID As String
Open "C:\tmp\zaehler.txt" For Input As #1
If Not EOF(1) Then _
Line Input #1, sID
Close #1
ID = Trim(sID)
If ID < 60000 Then ID = 60000
ID = ID + 1
Selection.TypeText "ID: " & ID
Open "C:\tmp\zaehler.txt" For Output As #1
Print #1, ID
Close #1
End Sub
ja sicher mit Word