Hi All,
ich habe das vor ein paar Jahren auch mal gemacht. Damals habe 
ich das so gelöst:
Die Nr. wird hier extern in einer Textdatei gespeichert. Nur so ist 
gewährleistet, dass nicht gleichzeitig, während man die Rechnung 
schreibt, ein anderer Nutzer im Netzwerk auch auf die Vorlage 
zugreift und eine Rechnung mit gleicher Nr. erwischt. Die 
Dateiendung .lnr ist hier frei erfunden und steht für laufende Nr.
Hier der Code für Modul "Diese Arbeitsmappe":
Private Sub Workbook_Open()
Set NrPos = Range("C3") 'Zelle, wo die Nr. eingefügt werden soll
Pfad = ThisWorkbook.Path
'Alternativ: Pfad="Ordner\Subordner" 'Das letzte Zeichen darf nicht "\" 
sein.
Datei = Left(ThisWorkbook.Name, InStr(1, ThisWorkbook.Name, ".") 
- 1)
'Alternativ: Datei = "Dateiname"
Datei = Datei & ".lnr" 'ausgedachte Dateiendung
'Datei kann im Explorer mit Editor oder Notepad geöffnet werden.
'Prüft ob wirklich von Vorlage geöffnet
dname = ThisWorkbook.Name
If Right(dname, 4) = ".xlt" Or Right(dname, 5) = ".xltx" Then
'Alternativ: If ThisWorkbook.Name = "MeineDateiVorlage.xlsx" then
  On Error GoTo Fehler
  'Öffnet lnr-Datei und liest diese aus.
  Open Pfad & "\" & Datei For Input As #1
  Input #1, Nr
  Close #1
  'zählt die Nr. hoch und schreibt sie ins Formular
  Nr = Nr + 1
  NrPos.Value = Nr
  NrPos.NumberFormat = "0000"
  'Speichert die neue Nr. wieder in der lnr-Datei
  Open Pfad & "\" & Datei For Output As #1
  Print #1, Nr
  Close #1
End If
'Beendet den Code da nachfolgender nur sehr selten ausgeführt 
wird.
Exit Sub
'wenn lnr-Datei nicht existent wird sie mit Standardnr. 0 erstellt
Fehler:
Open Pfad & "\" & Datei For Output As #1
Print #1, 0 '0 = Standardnr. von der hochgezählt werden soll.
Close #1
Resume Next
End Sub
Das Ganze ist natürlich nur ein Behelf. In der Regel wird für 
das Schreiben von Rechnungen in Firmen ein IDW-Zertifiziertes 
oder zumindest GoB-Testiertes ERP-System vorausgesetzt. Oder in 
Vereinen ein Datenbankprogramm wie Access genutzt.
Gruß Mr. K.