Komplexes zählverhalten
#31
Alternatieve:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 And Target.Column = 2 Then
    If Target <> "" And Target.Offset(, -1) = "" Then Target.Offset(, -1) = Format(Date, "YYMM - ") & Format(IIf(Left(Target.Offset(-1, -1), 4) <> Format(Date, "YYMM"), 0, Right(Target.Offset(-1, -1), 3) + 1), "000")
  End If
End Sub
Dann braucht man kein 'Administrator' Arbeitsblatt mehr.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#32
@snb

Code:
Right(Target.Offset(-1, -1), 3) + 1)

das ist genau das, was nicht passieren darf! Du beziehst Dich auf die Vorgängernummer und berücksichtigst nicht, dass dadurch eine doppelte, oder noch schlimmer, mehrfache Vergabe einer ID für unterschiedliche Datensätze, die vermieden werden soll, ermöglicht wird. So wird die Eineindeutigkeit zerschossen und andere Tabellenblätter, die sich auf diese ID beziehen, liefern Dir u.U. falsche Ergebnisse. 
Cinderella, bleib beim Administratorblatt! Unabhängig von der Vorgängerzelle.... ansonsten hätten wir ja auch bei Max oder der Zeilennummer bleiben können...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#33
Moin nochmal von mir!
Ich bin ja immer noch der Meinung, dass man den aktuellen Monat und das Jahr im Kopf haben sollte.
Eine selbständige Addition von 1 traue ich den meisten Sachbearbeitern zu …  21

Wenn ich unbedingt sicherstellen will, dass die Nummer eindeutig ist (und auf VBA zurückgreifen will), dann nehme ich einen Timestamp im entsprechenden Format.
Diesen trage ich per Doppel- oder Rechtsklick in die Zelle ein:
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
  If .Column = 1 And .Value = "" Then
    .Value = CDbl(Format(Now, "yyyymmhhnnss"))
    Cancel = True
  End If
End With
End Sub
 
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#34
...Timestamp ist immer gut....  94
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.
Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.

Ciao, Ralf

Antworten Top
#35
Moin,

Im allgemeinen sei empfohlen in eindeutigen Ziffern nicht weitere Informationen zu verschlüsseln. Welchen Vorteil hast du davon, dass du einer Mitgliedsnummer ihr alter ansiehst? Wenn du das Eintrittsdatum einfach als zusätzliches Stammdatum erfasst, reicht eine einfache fortlaufende Nummer.
Also: Grundsätzlich hat eine ID keine andere Bedeutung als ihre Eindeutigkeit.

Viele Grüße
derHöpp
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste