Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fortlaufende Nummer inkl. Jahr

Fortlaufende Nummer inkl. Jahr
13.12.2017 14:54:42
Sandro
Hallo Zusammen
Bei einem VBA Code einer UserForm komme ich auf keinen grünen Zweig und brauche eure Hilfe.
Die Box soll automatisch eine fortlaufende Nummer nach folgendem Muster generieren "JJ-000". Also 17-001, 17-002 usw. wenn im Jahr 2018 ein Auftrag erfasst wird wechselt es von 17-000 auf 18-000 wenn möglich soll es dann wieder bei 0 beginnen und nicht fortfahren.
Aufgrund meiner beschränkten VBA Kenntnisse komme ich trotz Google nicht weiter, bei meinem Code wird das Format immer so ausgegeben: "2017-1"
Kann mir jemand helfen? Dort wo "?" steht, wusste ich nicht was reinschreiben.
Danke & Grüsse
Sandro
Hier mein Code:
Private Sub UserForm_Initialize()
Sheets("Erfassung").Select
Sheets("Erfassung").Cells(Rows.Count, 1).End(xlUp).Select
If Selection.Row = 1 Then
Auftragsnummer.Text = "001"
Else
Auftragsnummer.Text = Year(Date) & "-" & Cells(Selection.Row, 1).Value + 1
End If
Cells(Selection.Row + 1, 1).Select
Selection.NumberFormat = ("?")
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummer inkl. Jahr
13.12.2017 15:25:38
Phi
Die fortlaufende Nummer steht in Spalte A.

NeueNr = right(Year(Now),2) & "-" & Format(worksheetfunction.countif(Columns(1), Right(Year(Now) _
,2) & chr(42)), "000")
Dies kann in eine USerForm oder eine Zelle geschrieben werden.
AW: Fortlaufende Nummer inkl. Jahr
14.12.2017 06:52:15
Sandro
Hallo Phi
Danke für die Rückmeldung. Wenn das Jahr 2018 beginnt, fängt dein Code dann wieder bei 18-001 an? Der Rest war mir klar und funktioniert wunderbar.
Gruss
Sandro
Anzeige
AW: Fortlaufende Nummer inkl. Jahr
13.12.2017 15:59:10
Rudi
Hallo,
ich würde das als fortlaufende Zahl einfügen und den - nur per Format darstellen. Dann kannst du leich die aktuelle Nummer ermitteln.
Private Sub UserForm_Initialize()
Dim lngRow As Long, intJahr As Integer, intMaxNr As Integer
intJahr = (Year(Date) - 2000) * 1000    '17000 für 2017
With Sheets("Erfassung")
lngRow = .Cells(Rows.Count, 1).End(xlUp).Row
intMaxNr = WorksheetFunction.Max(.Columns(1))
End With
If lngRow > 1 Then
If intMaxNr 

Gruß
Rudi
Anzeige
AW: Fortlaufende Nummer inkl. Jahr
14.12.2017 07:04:54
Sandro
Hallo Rudi
Dein Code funktioniert super und das mit dem Darstellen als Nummern finde ich auch sinnvoll. Ein Problem habe ich nun noch, die Werte werden in eine Tabelle im Excel übertragen, dort habe ich zwar die Spalte so formatiert, dass der "-" dazwischen kommt. Jedoch muss ich das bei jedem Eintrag erneut von Hand machen. Gibt's da einen Trick um das in den Code zu integrieren?
Gruss
Sandro
Anzeige
AW: Fortlaufende Nummer inkl. Jahr
14.12.2017 09:41:36
Rudi
Hallo,
entweder die ganze Spalte vorab formatieren oder
DieZelle.numberformat=“00-000“
Gruß
Rudi
AW: Fortlaufende Nummer inkl. Jahr
14.12.2017 10:05:51
Sandro
Danke Rudi, das war genau was ich gesucht habe! mit numberformat=“00-000“ funktioniert es.
Vielen Dank für deine Hilfe.
Gruss
Sandro
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fortlaufende Nummerierung in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine fortlaufende Nummer inklusive Jahr in Excel zu generieren, kannst du folgenden VBA-Code verwenden. Dies ist besonders nützlich, wenn du eine Excel Vorlage für fortlaufende Nummern benötigst, beispielsweise für Rechnungen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick im Projektfenster > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code in das Modul ein:
Private Sub UserForm_Initialize()
    Dim lngRow As Long
    Dim intJahr As Integer
    Dim intMaxNr As Integer

    intJahr = Year(Date) - 2000 ' Berechnet die letzten zwei Ziffern des Jahres
    With Sheets("Erfassung")
        lngRow = .Cells(Rows.Count, 1).End(xlUp).Row
        If lngRow > 1 Then
            intMaxNr = WorksheetFunction.Max(.Columns(1))
        Else
            intMaxNr = 0
        End If
        Auftragsnummer.Text = Format(intJahr, "00") & "-" & Format(intMaxNr + 1, "000")
        .Cells(lngRow + 1, 1).NumberFormat = "00-000" ' Format für die Zelle
    End With
End Sub
  1. Ersetze "Auftragsnummer" im Code durch den Namen deiner Textbox oder Zelle.
  2. Schließe den VBA-Editor und teste die UserForm.

Häufige Fehler und Lösungen

  • Fehler: Die Nummer wird in einem falschen Format ausgegeben (z.B. "2017-1").

    • Lösung: Stelle sicher, dass du das richtige NumberFormat für die Zelle verwendest, z.B. Cells(lngRow + 1, 1).NumberFormat = "00-000".
  • Fehler: Die Nummerierung beginnt nicht im neuen Jahr bei "001".

    • Lösung: Überprüfe den Code und stelle sicher, dass die intMaxNr variable korrekt initialisiert wird.

Alternative Methoden

Falls du keine VBA-Programmierung verwenden möchtest, kannst du auch eine Formel in Excel nutzen, um eine fortlaufende Rechnungsnummer zu generieren. Hier ist ein Beispiel:

  1. In Zelle A1 schreibst du:
    =TEXT(JAHR(HEUTE()),"00") & "-" & TEXT(REIHE(A1),"000")
  2. Ziehe die Zelle nach unten, um die fortlaufende Nummerierung zu erreichen.

In Google Sheets funktioniert die fortlaufende Nummerierung ähnlich.


Praktische Beispiele

Wenn du eine Excel Vorlage für fortlaufende Rechnungsnummern erstellen möchtest, kannst du folgende Schritte befolgen:

  1. Erstelle eine Tabelle mit Spalten für Datum, Auftragsnummer und Betrag.
  2. Nutze den obigen VBA-Code, um die Auftragsnummer automatisch zu generieren, wenn ein neuer Auftrag hinzugefügt wird.

Ein Beispiel für eine fortlaufende Rechnungsnummer wäre:

  • 22-001
  • 22-002
  • 22-003

Tipps für Profis

  • Verwende Excel VBA, um die fortlaufende Nummer automatisch zu vergeben. Dies spart Zeit und reduziert Fehler.
  • Experimentiere mit VBA Makros, um die Nummerierung weiter zu automatisieren, z.B. durch das Hinzufügen von Text oder weiteren Bedingungen.
  • Denke daran, dass du auch Bedingungen hinzufügen kannst, um die Rechnungsnummer jedes Jahr neu beginnen zu lassen.

FAQ: Häufige Fragen

1. Wie kann ich die fortlaufende Nummerierung im neuen Jahr zurücksetzen?
Du kannst eine Bedingung im Code hinzufügen, die prüft, ob das Jahr gewechselt hat, und die intMaxNr entsprechend zurücksetzt.

2. Funktioniert dieser Code auch in Excel 365?
Ja, der Code ist mit Excel 365 kompatibel und sollte ohne Probleme funktionieren.

3. Gibt es eine Möglichkeit, die Nummerierung ohne VBA zu erstellen?
Ja, du kannst auch Excel-Formeln verwenden, um eine fortlaufende Nummer zu generieren, wie im Abschnitt "Alternative Methoden" beschrieben.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige