Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1396to1400
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

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

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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige