Thema Datum  Von Nutzer Rating
Antwort
16.06.2021 13:41:30 Torsten
NotSolved
Blau Primärschlüssel erstellen / Fortlaufender Nummer
17.06.2021 20:53:28 Gast21246
NotSolved

Ansicht des Beitrags:
Von:
Gast21246
Datum:
17.06.2021 20:53:28
Views:
583
Rating: Antwort:
  Ja
Thema:
Primärschlüssel erstellen / Fortlaufender Nummer

Welche möglichkeiten bieten Excel um soetwas prozesssicher zu lösen?

Keine. Excel ist keine Datenbank.

Gibt es einen VBA-Code der mit einen Fortlaufender Nummer automatisch erstellt?

Wenn es unbedingt sein muss, könnte man etwas hintricksen.
( eine der simpelsten Tricksereien wäre z.B. so etwas )

Option Explicit

Sub Test()
  
  Call ResetUID
  Debug.Print "prev: "; GetLastUID(), "new: "; CreateUID()
  Debug.Print "prev: "; GetLastUID(), "new: "; CreateUID()
  Debug.Print "prev: "; GetLastUID(), "new: "; CreateUID()
  Debug.Print "prev: "; GetLastUID(), "new: "; CreateUID()
  Debug.Print "prev: "; GetLastUID(), "new: "; CreateUID()
  
End Sub






Public Function CreateUID(Optional Format = "0000") As String
  Dim i As Long
  Call LastUID(i)
  CreateUID = VBA.Format$(i + 1, Format)
  Call LastUID(i + 1, 1)
End Function

Public Function GetLastUID(Optional Format = "0000") As String
  Dim i As Long
  Call LastUID(i)
  GetLastUID = VBA.Format$(i, Format)
End Function

Public Sub ResetUID()
  Call LastUID(0, 1)
End Sub

Private Sub LastUID(ByRef UID As Long, Optional Action)
  
  Dim objName As Excel.Name
  
  On Error Resume Next
  Set objName = Worksheets("Tabelle1").Names("__UID_LAST")
  On Error GoTo 0
  
  If objName Is Nothing Then _
    Set objName = Worksheets("Tabelle1").Names.Add(Name:="__UID_LAST", RefersTo:=0)
  
  If IsMissing(Action) Then
    UID = Application.Evaluate(objName.Value)
  ElseIf Action = 1 Then
    objName.RefersTo = UID
  Else
    UID = Application.Evaluate(objName.Value)
  End If
  
End Sub

 

Grüße


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.06.2021 13:41:30 Torsten
NotSolved
Blau Primärschlüssel erstellen / Fortlaufender Nummer
17.06.2021 20:53:28 Gast21246
NotSolved