Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Automatische, eindeutige Nummerierung VBA

Forumthread: Automatische, eindeutige Nummerierung VBA

Automatische, eindeutige Nummerierung VBA
09.12.2014 18:52:38
Andrej
Hallo Freunde des VBA-Universums,
ich habe folgendes Problem: ich muss für meinen Dozenten ein Archiv erstellen, bei dem er alle seine Bachelorarbeiten einsehen kann. Und ich möchte, dass wenn ich eine neue Bachelorarbeit in einer neuen Zeile anlege, automatisch diese Bachelorarbeit eine eindeutige ID bekommt. Also auch wenn er filtert, soll eine Bachelorarbeit eine eindeutige ID haben, ohne Neuberechnung. Ich hab schon ein Formular angelegt, indem man die Bachelorarbeit einfügen kann. Kann man da so einen Code für die automatische Nummerierung in der Spalte A ab Zeile 9 einfügen, oder muss man dafür ein neues Makro anlegen ?
Private Sub cmdÜbernehmen_Click()
'Fügt die eingetragenen in das Tabellenblatt und schließt das Formular frmBachelorarbeit
Dim intErsteLeereZeile As Long
intErsteLeereZeile = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
ActiveSheet.Cells(intErsteLeereZeile, 2).Value = Me.txtBranche.Value
ActiveSheet.Cells(intErsteLeereZeile, 3).Value = Me.txtUnternehmen.Value
ActiveSheet.Cells(intErsteLeereZeile, 4).Value = Me.txtNachname.Value
ActiveSheet.Cells(intErsteLeereZeile, 5).Value = Me.txtVorname.Value
ActiveSheet.Cells(intErsteLeereZeile, 6).Value = Me.txtThema.Value
ActiveSheet.Cells(intErsteLeereZeile, 7).Value = Me.txtTitel.Value
ActiveSheet.Cells(intErsteLeereZeile, 8).Value = Me.txtSemester.Value
Unload frmBachelorarbeit
End Sub
Mit freundlichen Grüßen
Andrej

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Automatische, eindeutige Nummerierung VBA
09.12.2014 19:11:39
Vic
Ich verwende dafür folgenden Code (jeweils im Tabellenblatt):
Option Explicit
'ID vergeben
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then 'Änderungsspalte für ID
If Target.Offset(0, -1).Value = "" Then
Target.Offset(0, -1).Value = Application.WorksheetFunction.Max(Columns("A")) + 1
End If
End If
End Sub
'ID erzeugen
Private Function Max_Each_Column(Data_Range As Range) As Integer
Dim TempArray() As Double, i As Long
If Data_Range Is Nothing Then Exit Function
With Data_Range
ReDim TempArray(1 To .Columns.Count)
For i = 1 To .Columns.Count
TempArray(1) = Application.Max(.Columns(1))
Next
End With
Max_Each_Column = TempArray
End Function
mit target.column legst du fest, welches die Schlüsselsplate für die ID sein soll. Ändert sich also der Wert in Spalte 2 und es ist noch keine ID vorhanden, wird eine vergeben. Funktioniert allerdings nicht, wenn du mehrere Zeilen importierst - da kannst du aber manuell die ID ergänzen. Zur Sicherheit legst du noch eine Datengültigkeit drüber, die Doppelte Einträge ausschließt.
Gruß Vic

Anzeige
AW: Automatische, eindeutige Nummerierung VBA
09.12.2014 21:56:57
Andrej
Hey Vic, vielen Dank für die schnelle Antwort, allerdings passiert nichts in der Spalte A wenn ich einen neuen Datensatz einfüge. Also es entsteht kein neue ID. Vielleicht hab ich was nicht verstanden. Was genau muss ich an dem Code an meine Tabelle anpassen ? Bin dumm wie Brot, was das angeht. Sorry

Anzeige
AW: Automatische, eindeutige Nummerierung VBA
09.12.2014 22:24:54
Vic
Hab dir mal ein Beispiel hochgeladen. Spalte A (ID) reagiert auf Eingaben in Spalte B - Funktioniert wie schon gesagt nur bei Einzeleingaben (einfach mal in B2 was eingeben).
https://www.herber.de/bbs/user/94316.xlsm
Gruß Vic

Anzeige
AW: Automatische, eindeutige Nummerierung VBA
10.12.2014 02:21:05
Andrej
Vielen DANK für deine MÜHE. Ein Problem hätt ich dabei noch: Und zwar wenn ich da jetzt was eintrage, werden automatisch die IDs eingetragen,top! Aber wenn ich beispielsweise die letzte ID lösche z.B. die 10 und dann wieder eine neue anlegen möchte, wird wieder die 10 erstellt. Also immer die letzte. Mittendrin eine löschen klappt einwandfrei. Eine Kleinigkeit noch: Die Tabelle beginnt in der Zelle A8 bis H8. Was muss man dafür in dem Code ändern ? Es tut mir Leid wie ich mit Fragen um mich werfe, aber ich hatte noch nie eine wirkliche Einführung in das Thema. Vielen Dank im Voraus.

Anzeige
AW: Automatische, eindeutige Nummerierung VBA
10.12.2014 12:54:25
Vic
Kein Problem-das Forum ist ja für Fragen da. Davon habe ich auch genug, weil ich mich dem Thema auch ganz langsam learnig bei doing nähere.
Zu deiner Liste: Einfach mit einem Zähler, der den Max-Wert ermittelt:
https://www.herber.de/bbs/user/94326.xlsm
Gruß Vic
Anzeige
;
Anzeige

Infobox / Tutorial

Automatische eindeutige IDs in Excel mithilfe von VBA


Schritt-für-Schritt-Anleitung

Um in Excel eindeutige IDs automatisch zu generieren, kannst Du VBA verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklicke im Projekt-Explorer auf "VBA-Projekt (Deine Datei)", wähle "Einfügen" und dann "Modul".
  3. Kopiere und füge folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 2 Then ' Spalte B für die Eingaben
        If Target.Offset(0, -1).Value = "" Then
            Target.Offset(0, -1).Value = Application.WorksheetFunction.Max(Columns("A")) + 1
        End If
    End If
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Teste die Eingabe: Gib in Spalte B (ab Zeile 9) einen Wert ein, um zu sehen, ob eine eindeutige ID in Spalte A generiert wird.

Häufige Fehler und Lösungen

  • Problem: Die ID wird nicht generiert, wenn Du einen neuen Datensatz hinzufügst.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt eingefügt ist. Der Code muss im Code-Bereich des spezifischen Arbeitsblatts sein, wo die Daten eingegeben werden.
  • Problem: ID wird immer die letzte ID wiederhergestellt.

    • Lösung: Ändere den Code, um den Maximalwert dynamisch zu ermitteln. Füge eine Zeile hinzu, die den Maximalwert vor der Zuweisung überprüft.

Alternative Methoden

Eine andere Möglichkeit, eindeutige IDs in Excel zu generieren, ist die Verwendung von Formeln. Du kannst folgende Formel in die Zelle A9 eingeben:

=MAX(A$8:A8)+1

Ziehen die Formel nach unten, um sie auf neue Zeilen anzuwenden.


Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung des Codes:

  1. Bachelorarbeiten-Archiv: Erstelle ein Archiv, in dem jede Bachelorarbeit automatisch eine eindeutige ID erhält, sobald Du die Details in die Tabelle eingibst.
  2. Kundendatenbank: Verwende die automatische ID-Generierung für eine Datenbank, die Kundeninformationen enthält, um jede Zeile eindeutig zu identifizieren.

Tipps für Profis

  • Verwende eine Datengültigkeitsprüfung, um sicherzustellen, dass keine doppelten Einträge in der ID-Spalte erstellt werden.
  • Erweitere den VBA-Code, um IDs zu generieren, die auf einem bestimmten Format basieren (z.B. "ID-001", "ID-002").
  • Teste den Code regelmäßig, besonders nach Änderungen, um sicherzustellen, dass die eindeutigen IDs korrekt generiert werden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich die ID-Generierung anpassen, um mit mehreren Zeilen zu arbeiten?
Antwort: Du kannst den Code so erweitern, dass er die ID für alle neuen Zeilen generiert, indem Du eine Schleife hinzufügst, die alle neuen Zeilen bearbeitet.

2. Frage
Funktioniert der VBA-Code in allen Excel-Versionen?
Antwort: Ja, der Code sollte in den meisten modernen Versionen von Excel funktionieren, solange die Makros aktiviert sind.

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