Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1728to1732
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fortlaufende Nummer

Fortlaufende Nummer
09.12.2019 13:30:31
MaBlu
Hallo zusammen
ich möchte eine Fortlaufende Nummer generieren in Spalte A ab A14, wenn in Spalte B etwas eingegeben wird.
Die Nummer besteht aus der Aktuellen Jahrzahl zB. 2019 und einer 4 Stelligen Ziffer beginnend 0001
also 20190001, das habe ich mit der Formel =WENN(B14>0;TEXT(HEUTE();"JJJJ")&TEXT(1;"0000");"") ~f~
in A14 , und ab A 15 ~f~=WENN(B15>0;A14+1;"") probiert,
aber ich denk wenn die Jahrzahl ändert ändern auch alle Nummern!
Wie kann ich das verhindern?
Für eure Hilfe besten Dank
Gruss MaBlu

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fortlaufende Nummer
09.12.2019 13:37:10
Günther
Moin,
der einfachste Weg wird sein, wenn du die errechnete Nummer kopierst und als Wert einfügst. Dadurch ist die Formel nicht mehr existent und die Zelle wird sich nicht mehr automatisch ändern.
Alternative: VBA.
Gruß
Günther
AW: Fortlaufende Nummer
09.12.2019 15:06:47
MaBlu
Hallo Gunter
Danke für die Info, Frage wie sähe dann das ganze mit VBA aus?
Gruss MaBlu
AW: Fortlaufende Nummer
09.12.2019 15:41:34
Bernd
Servus Mablu,
teste mal im Codebereich des Tabellenblattes:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ID As Integer
If Target.Column  2 Then Exit Sub
If Not Year(Date) = CInt(Left(Target.Offset(-1, -1), 4)) Then
ID = 1
Else
ID = Right(Target.Offset(-1, -1).Value, 4) + 1
End If
If Target.Row > 2 Then
Target.Offset(, -1).Value = Year(Date) & Format(ID, "0000")
End If
End Sub

Grüße, Bernd
Anzeige
AW: Fortlaufende Nummer
09.12.2019 16:02:10
MaBlu
Hallo Bernd
das geht soweit, aber ich denke ich hatte etwas vergessen zu sagen weil ich es ja mit Formeln lösen wollte, geht aber wahrscheinlich ja nicht drum hab ichs nicht erwähnt sorry.
In der 2 Spalte ist immer das Eingabe Datum, wenn das Jahr dann wechselt sollte die Nummer auch wechseln so zB.
20190001 = 01.01.2019
20190002 = 03.01.2019
20190003 = 01.02.2019 usw.
20200001 = 05.03.2020 hier sollte die Nummer zurückwechseln aufJahr + 0001
ist das Möglich, würde mir bei der Auswertung helfen.
Gruss MaBlu
AW: Fortlaufende Nummer
10.12.2019 08:20:09
hary
Moin
Mit Evaluate(Formel) im Code.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strNummer As String
If Target.CountLarge > 1 Then Exit Sub
If Target.Column = 2 Then
strNummer = Format(Evaluate("=SUM(IF(YEAR($B$1:B" & Target.Row & ")=YEAR(" & CLng(Target) & ") _
,1,0))"), "0000")
Cells(Target.Row, 1) = Year(CLng(Target)) & strNummer
End If
End Sub

gruss hary
Anzeige
AW:Zusatz
10.12.2019 08:32:58
hary
Moin nochemal
Sollte in B1 eine Ueberschrift stehen, musst du in der Codeformel B1 in B2 andern.
gruss hary
AW: Fortlaufende Nummer gelöst!
10.12.2019 08:39:06
MaBlu
Guten Morgen Harry
das wars vielen Dank geht super :)
Wünsche einen schönen Tag
Gruss MaBlu
AW: Fortlaufende Nummer
10.12.2019 14:59:32
Bernd
Servus MaBlu,
genau das macht mein Code in diesem Bereich:

If Not Year(Date) = CInt(Left(Target.Offset(-1, -1), 4)) Then
ID = 1
Else
ID = Right(Target.Offset(-1, -1).Value, 4) + 1
End If

Übersetzung:
Wenn die aktuelle Jahreszahl NICHT der Jahreszahl der letzten Eintragung entspricht
=> dann "reset" der ID auf 1
=> sonst erhöhe die bestehende ID um 1
Ggf. sollte man jedoch noch folgenden Abschnitt ergänzen:

If Target.Column  2 Or Target.Count > 1 Then Exit Sub
Grüße, Bernd
Anzeige
AW: Fortlaufende Nummer
10.12.2019 21:20:32
MaBlu
Hallo Bernd
ich habs versucht, aber es will nicht klappen?
Resultat:
Userbild

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ID As Integer
If Target.Column  2 Then Exit Sub
If Not Year(Date) = CInt(Left(Target.Offset(-1, -1), 4)) Then
ID = 1
Else
ID = Right(Target.Offset(-1, -1).Value, 4) + 1
End If
If Target.Row > 2 Then
Target.Offset(, -1).Value = Year(Date) & Format(ID, "0000")
If Target.Column  2 Or Target.Count > 1 Then Exit Sub
End If
End Sub
Was ist Falsch?
Gruss MaBlu
Anzeige
AW: Fortlaufende Nummer
11.12.2019 10:59:54
Bernd
Servus MaBlu,
die Frage ist, wie die ID generell zusammengestellt werden soll.
Mein Code errechnet die ID anhand des Systemdatums des PC und den bisherigen Eintragungen.
If Not Year(Date) = CInt(Left(Target.Offset(-1, -1), 4)) Then

Er zieht sich das Jahresdatum aus dem aktuellen Datum des Rechners ("Year(Date)") und vergleicht diesen Wert mit den ersten 4 Ziffern der darüberliegenden Eintragung.
Bsp:
Du gibst am 31.12.2019 irgendwelche Daten in Zelle B3 ein. In Zelle A2 steht die ID 20190003. Dann vergleicht der Code das aktuelle Jahr vom Eintragsdatum 31.12.2019 (=2019) mit den ersten 4 Ziffern der Zelle A2 (ID=20190003=>2019). Das Jahr ist gleich, deshalb errechnet das Makro für die Zelle A3 die ID 20190004.
Dann gibst du am 01.01.2020 irgendwelche Daten in Zelle B4 ein. In Zelle A3 steht die ID 20190004. Dann vergleicht der Code das aktuelle Jahr vom Eintragsdatum 01.01.2020 (=2020) mit den ersten 4 Ziffern der Zelle A3 (ID=20190004=>2019). Das Jahr ist NICHT gleich, deshalb errechnet das Makro für die Zelle A4 die ID 20200001.
Daher ist es eine Frage des Prinzips: Soll sich die fortlaufende Nummer aus einem manuell eingetragenen Datum errechnen, oder über das Systemdatum?
Wenn ich später auswerten möchte wann ein Datensatz angelegt wurde würde ich persönlich die automatische der manuellen Datumseintragung vorziehen.
das liesse sich z.B. dadurch ergänzen, indem man zusätzlich von

Private Sub Worksheet_Change(ByVal Target As Range)
Dim ID As Integer
If Target.Column  2 Or Target.Count > 1 Then Exit Sub
If Not Year(Date) = CInt(Left(Target.Offset(-1, -1), 4)) Then
ID = 1
Else
ID = Right(Target.Offset(-1, -1).Value, 4) + 1
End If
If Target.Row > 2 Then
Target.Offset(, -1).Value = Year(Date) & Format(ID, "0000")
Target.Offset(,1).Value = Date ' Eintragsdatum in Spalte "C"
End If
End Sub

Anzeige
AW: Fortlaufende Nummer gelöst!
12.12.2019 14:26:26
MaBlu
Hallo Bernd
deine Erklärungen haben mir jetzt erst die Bedeutung deiner Errechnung gezeigt, vielen Dank.
Ich nehme die das mit der Zusatz-spalte das finde ich gut, und die Fortlaufende Nummerierung klappt so besten Danke
Gruss MaBlu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige