Hallo Karin!
Vielen lieben Dank für Deine Antwort und deinen Tipps, funktioniert prima!
Könntest Du bitte trotzdem, wenn Du die Zeit hast, Dir folgenden VBA Code ansehen, ob es möglich ist, die Zelle G4 und die Spalte A:A direkt in dem Code so zu formatieren, dass die Rechnungsnummern in der Form 26-000 als Text gespeichert werden.(Nur für mich zum Lernen)
Wenn nicht, ist OK!
Sub Rechnungsnummer_Generieren()
Dim NächsteNummer As Long
Dim LetzteNummer As Long
Dim ZelleNummer As Range
' --- Anpassbare Bereiche ---
Set ZelleNummer = Worksheets("Rechnungsnummern").Range("G4") ' Zelle, wo die aktuelle Nummer steht
Dim ListeSpalte As Range
Set ListeSpalte = Worksheets("Rechnungsnummern").Range("A:A") ' Spalte mit allen Nummern (optional, für MAX)
' --------------------------
' Prüfen, ob eine Nummer existiert (falls nicht, starte bei 1)
If Application.WorksheetFunction.CountA(ListeSpalte) > 1 Then ' >1, da Überschrift in A1 sein könnte
LetzteNummer = Application.WorksheetFunction.Max(ListeSpalte)
Else
LetzteNummer = 0 ' Startet bei 0, damit +1 = 1 ergibt
End If
NächsteNummer = LetzteNummer + 1
' Nummer formatieren (z.B. 00000)
ZelleNummer.Value = Format(NächsteNummer, "26-000") ' Format anpassen, z.B. "000000"
' Optional: Die neue Nummer in die Liste schreiben (z.B. Spalte A)
' Suche die nächste leere Zelle in Spalte A
Dim nächsteLeereZelle As Range
Set nächsteLeereZelle = Worksheets("Rechnungsnummern").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
nächsteLeereZelle.Value = NächsteNummer
nächsteLeereZelle.NumberFormat = "26-000"
' Optional: Datum hinzufügen (z.B. 2025-00001)
' Worksheets("Rechnungen").Range("D1").Value = "Rechnungs-Nr.: " & Format(Date, "YYYY-") & Format(NächsteNummer, "00000")
End Sub
Nochmal vielen Dank für Deine Hilfe!
Beste Grüße
Hans-Jörg