MAkro für fortlaufende vertragsnummer?

2 Antworten

Extrem hilfreich wäre es, wenn du mindestens das Programm nennen würdest, mit dem du das machen willst.

Alexa738 
Fragesteller
 07.09.2023, 11:36

ja sicher mit Word

0
beelee  07.09.2023, 13:27
@Alexa738

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

0
Alexa738 
Fragesteller
 07.09.2023, 14:24
@beelee

DAnke

Leider wird die Nummer im Word document nicht angezeigt

Was mach ich falsch

0
beelee  07.09.2023, 14:34
@Alexa738

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....

0
Alexa738 
Fragesteller
 07.09.2023, 14:44
@beelee

Ich glaube das problem ist mit Einfügen > Feldwählst und dann das FeldDOCVARIABLE FortlaufendeNummer

hier kommt eine fehlermeldung sobald ich das Doc auf mache

Fehler! Keine Dokumentvariable verfügbar.Fehler! Keine Dokumentvariable verfügbar.

0
beelee  07.09.2023, 14:50
@Alexa738

Und wenn du das Feld DOCVARIABLE mal weglässt? Läuft es dann fehlerfrei durch?

Und prüfe mal, ob num einen Wert hat. Du weisst wie?

0
Alexa738 
Fragesteller
 07.09.2023, 15:08
@Alexa738

eine KLeinigkeit noch der NUmmernkreis stimmt nicht --NUmmer sollte 6 Stellig sein-wird nur 5 stellig angezeigt

26001 statt 260001

ich habe die Zahl im MAkro geändert hilft aber nicht

0
beelee  07.09.2023, 15:23
@Alexa738

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)

0

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