Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Fahrernummer automatisch erstellen

Forumthread: Fahrernummer automatisch erstellen

Fahrernummer automatisch erstellen
12.01.2025 11:59:24
Alexwin
Hallo Gemeinde..

Ich möchte in unsere vorhandene Excel-Datenbank eine automatische Generierung einer fahrernummer für die Mitarbeiter erstellen lassen. Bislang tragen wir die manuell ein. Das ganze hat aber mehrere Haken weswegen ich das gerne automatisiert hätte, leider aber überhaupt keine Ahnung habe wie ich das umsetzten könnte.

Die Fahrernummer darf nur einmal existieren. Wenn ein Mitarbeiter ausscheidet ( warum auch immer ) wird dieser in ein Archivverzeichnis verschoben und verschwindet so aus der aktuellen Mitarbeiterliste ( das funktioniert bei uns bereits so ). Die Fahrernummer des ausgeschiedenen wird im Grunde wieder frei und darf nach einem Ablauf von 12 Monaten an einen neuen Kollegen vergeben werden.
Die Nummer soll am besten per Button klick erstellt werden.
Die Nummern sind immer 2 stellig ( 10-99 )

Vielleicht ist ja jemand unter euch für den das ein Klacks ist und mir erklären oder zeigen kann wie das so geht.

Vielen Dank für eure Hilfe.
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 12:41:50
{Boris}
Hi,

in Deiner Excelversion geht das sehr gut per Formel und Datenüberprüfung.
Zeig aber mal bitte Deinen bisherigen Mappenaufbau.

VG, Boris
AW: Fahrernummer automatisch erstellen
12.01.2025 13:37:02
Alexwin
Hallo Boris,

da meine Mappe bereits reichlich Inhalt hat und das ganze natürlich dem Datenschutz unterliegt kann ich das hier so nicht zeigen.

Grundsätzlich habe ich eine rbeitsmappe bestehend aus mehreren Blättern.
Eines davon ist z.B. eine Mitarbeitertabelle:

Mitarbeiter - ID Fahrernummer Nachname Vorname Straße HsNr PLZ Ort Telefon Handy Email Geburtsdatum Abteilung Letzte Änderung

Die Mitarbeiter-ID ist eine tatsächlich immer fortlaufende ID die es nur einmal gibt und auch nie erneut vergeben wird. Unsere Fahrer-Nr sind im Grunde sowas wie Namenskürzel. Deswegen ist es auch kein problem diese nach einer Zeit erneut zu vergeben. Es gibt ja auch Mitarbeiter mit gleichen Nachnamen...
Ein neuer Mitarbeiter wird per Buttonklick "neuer Mitarbeiter" angelegt. Dazu öffnet sich ein neues Tabellenblatt mit einer Eingabemaske. Die Mitarbeiter-ID wird dort bereits automatisch generiert und eingetragen. Das funktioniert nach dem Prinzip wie hoch ist die Letzte Zahl +1. Deswegen ist diese ID auch fortlaufend und wird nie gelöscht und ein zweites Mal vergeben.

Wenn ein Mitabeiter ausscheidet wird er in der Tabelle markiert und per Buttonklick in ein anderes Tabellenblatt Archiv verschoben.
Es gibt in der Mappe noch eine vielzahl an anderen Tabellenblättern die allesamt per VBA geschrieben wurden und verschiedenste Funktionen beinhalten.

Mir ist in gewisser Weise klar das es immer schwierig ist ohne die Datei zu kennen Lösungsvorschläge anzubieten. Im Grunde reicht es mir eine Einzellösung zu meinem Problem zu zeigen, ichdenke das ich das dann auch in meine bestehende Datei eingebunden bekomme.
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 13:54:42
{Boris}
Hi,

wenn Du doch ne Liste von 10 bis 99 hast (und daneben die aktiven Fahrer), ist es doch ein Leichtes, dort irgendeinen freien Eintrag zu ermitteln, wenn Du eh ausgeschiedene Fahrer aus dieser Liste entfernst.
Ich versteh die Problematik nicht. Der Google-Suchbegriff lautet mMn doch nur: Erste leere Zelle in einem Bereich finden.

VG, Boris
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 12:42:52
RPP63
Moin!
»Die Fahrernummer des ausgeschiedenen wird im Grunde wieder frei und darf nach einem Ablauf von 12 Monaten an einen neuen Kollegen vergeben werden.«
Dies ist - nennen wir's mal - suboptimal!
In einer "Datenbank" sollten IDs niemals erneut vergeben werden.
Entweder Max(ID)+1 (was fehlschlägt, wenn der Letzte vor Einstellung des Neuen bereits gekündigt (also verschoben) wurde).
Besser: Die Fahrernummer ist das Eintrittsdatum im Format JJJJMMTT.
Wenn ich heute anfinge, hätte ich 20250112

Gruß Ralf
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 13:39:44
Alexwin
Ja da hast du sicher recht. Dafür haben wir aber auch die wirkliche Mitarbeiter-ID ( siehe vorherige Antwort von mir ) die immer fortlaufend ist.
Die Fahrer-Nr ist bei uns wie eine Art Namenskürzel..

Aus diesem Grund soll und ist sie auch nur 2stellig 10-99 ( wir haben nur immer so um 50 Mitarbeiter )
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 13:09:39
{Boris}
Hi,

ich stimme Ralf bezüglich seiner Anmerkung zu bereits vergebenen Nummern zu.
Dennoch anbei eine Beispieldatei.
Wenn Du Fahrernummern, die ausgeschieden sind, erneut vergeben möchtest, dann muss Du den entsprechenden Datensatz aus der intelligenten Tabelle entfernen (und irgendwo speichern, wenn Du es denn möchtest).
Die Dropdowns zur Nummer zeigen immer nur die noch freien Fahrernummern an.

https://www.herber.de/bbs/user/174824.xlsx

VG, Boris
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 14:18:06
Piet
Hallo Alexwin

ich bin neu im Thread und vermisse die erste wichtige Frage! - Wie erstellt ihr ein neues Tabellenblatt??
Mal davon abgesehen, das die Kollegen gerne sagen das gehört ALLES in eine Tabelle, die man filtern kann!

Am einfachsten wäre ein Vorlage Sheet, das man einfach kopiert, und wo die letzte ID-Nummer notiert wird!
Dieses Sheet kannst du als Vlg=Vorlage erstellen und ausblenden. Per Button aus einem anderen Sheet kopieren.
Dabei kannst du die ID-Nummer vor jedem kopieren per Makro um 1 hochzählen und mit Save speichern.
Die Frage wurde bisher nicht gestellt, ist mein Vorschlag um diese Aufgabe zu lösen.

mfg Piet
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 16:09:27
Piet
Hallo Alexwin

nachdem ich mir deinen Thread noch mal richtig durchgelesen habe fand ich dein Anliegen. So simpel ...!
Füge unter "Mitarbeiter - ID" noch die zweite Zeile für die Fahrernummer ein. -- Das wars schon!
Damit ist das "1001 Nacht" Märchen erfolgreich gelöst worden. -- Freut mich wie ein Schneekönig!
Suche in Datenbank das Makro: --> Sub MitarbeiterAnlegen_DBEingabe()
'Fahrernummer einfügen
.Range("D12").Value = Application.WorksheetFunction.Max(Range("tbl_Datenbank[Mitarbeiter - ID]")) + 1
.Range("D18").Value = Application.WorksheetFunction.Max(Range("tbl_Datenbank[Fahrernummer]")) + 1

mfg Piet
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 22:38:13
Piet
Hallo Alexwin

der untere Code befindet sich bei mir in einem neuen Modul mit dem Namen "Fahrer_Nr"
Es erfolgen zwei Msgbox Abfragen ob du die ermittelte Nummer übernehmen willst.
Wenn Nein popt eine InputBox auf, wo du die Nummer selbst vergeben kannst.

Dieser Teil gehört ins Datenbank Modul, zum Aufruf des neuen Makros.
'Fahrernummer einfügrn
Call Nächste_freie_Fahrernummer
'.Range("D12").Value = tbl.DataBodyRange(tbl.DataBodyRange.Rows.Count, 1).Value + 1 - bei dieser Lösung wurde nicht nach der größten Zahl +1 gesucht
'.Range("D18").Value = Application.WorksheetFunction.Max(Range("tbl_Datenbank[Fahrernummer]")) + 1
.Range("D12").Value = Application.WorksheetFunction.Max(Range("tbl_Datenbank[Mitarbeiter - ID]")) + 1
.Range("D18").Value = FahrerNr 'Application.WorksheetFunction.Max(Range("tbl_Datenbank[Fahrernummer]")) + 1

Ich bin gespannt ob damit euer Anliegen gelöst ist???

mfg Piet

Public FahrerNr As Integer


Sub Nächste_freie_Fahrernummer()
Dim j As Integer, ErsatzNr As Integer
Dim tbl As ListObject, Txt As String, ok

Set tbl = tb_Archiv.ListObjects(1)
With tbl.ListColumns(2).DataBodyRange
'Alle Archiv Nummern auflisten
Txt = "Archiv: "
For j = 1 To .Rows.Count
If .Cells(j, 1).Value = "" Then Exit For
Txt = Txt & ", " & .Cells(j, 1)
Next j
End With

Set tbl = tb_Datenbank.ListObjects(1)
With tbl.ListColumns(2).DataBodyRange
'Alle Datenbank Nummern auflisten
Txt = Txt & vbLf & "DBank: "
For j = 1 To .Rows.Count
If .Cells(j, 1).Value > "" Then _
Txt = Txt & ", " & .Cells(j, 1)
Next j
End With

'Nächste freie Fahrer-Nummer ermitteln
FahrerNr = Empty
For j = 10 To 99
If InStr(Txt, j) = 0 Then Exit For
Next j

ok = MsgBox(j & " - ist die nächste freie Nummer" & vbLf & j & " - Als Fahrernummer übernehmen??", vbYesNo)
If ok = vbYes Then FahrerNr = j: Exit Sub

ErsatzNr = Application.WorksheetFunction.Max(Range("tbl_Datenbank[Fahrernummer]")) + 1
If InStr(Txt, ErsatzNr) = 0 Then
ok = MsgBox(ErsatzNr & " - als nächste Datenbank Nr. übernehmen?", vbYesNo)
If ok = vbYes Then FahrerNr = ErsatzNr: Exit Sub
'bei Nein Fahrer Nr. selbst vergeben
Txt = "Diese Nummern sind bereits gelistet:" & vbLf & Txt
On Error Resume Next
FahrerNr = InputBox(Txt)
End If
End Sub
Anzeige
AW: Fahrernummer automatisch erstellen
15.01.2025 12:46:21
Alexwin
Hallo Piet,

ich hatte heute Zeit deinen Vorschlag einzubauen und zu testen.
Ich bin im Grunde total begeistert.

Dafür schonmal ein riesen großen DANKESCHÖN !!

Eine kleine Sache habe ich aber noch.
Wenn ich die Abfrage und den alternatien Vorschlag mit nein beantworte wird mir das Fenster mit den gelisteten Nummern angezeigt und ich kann eine freie Auswahl treffen.
Hier habe ich dann die Möglichkeit trotzdem eine Nr einzutragen die bereits vergeben ist und bekomme keine Fehlermeldung. Kann man das in deinem Code noch irgendwie einbauen das dann eine Fehlermeldung erscheint das diese Nummer schon vergeben ist ?

Bis hierhin ganz herzlichen Dank
Anzeige
AW: Fahrernummer automatisch erstellen
18.01.2025 23:31:07
Piet
Hallo

das freut mich sehr, das mein Makro bei euch so gut angekommen ist. Das ändern ist eine Kleinigkeit, s.unten.
Du must nur die Zeilen für die InputBox wie unten ändern, dann klappt es. Hbae es gerade getestet.
Viel Spass und Grüsse aus Izmir an die Heimat.

mfg Piet

       'bei Nein Fahrer Nr. selbst vergeben

Txt = "Diese Nummern sind bereits gelistet:" & vbLf & Txt
On Error Resume Next
neu: FahrerNr = InputBox(Txt)
If FahrerNr = vbCancel Then Exit Sub
If InStr(Txt, FahrerNr) Then MsgBox "Diese Nummer ist bereits vergeben!": GoTo neu
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 16:37:36
Alexwin
Hallo Piet,

ich sagte ja das ich bereits eine Mitarbeiter_ID +1 erstelle und diese einfach immer weiter hoch zähle.
Die Fahrernummern sollen aber genau das nicht machen. Sie sollen sich im Bereich 10-99 halten und siedürfen im Gegensatz zu der Mitarbeiter_ID auch wieder verwendet werden nach ablauf von 12 Monaten.
Genau DAS ist mein problem, nicht die Tatsache eine Zahl immer um eins zu erhöhen..

Zum Thema Code einkürzen..
Ich bin mir absolut sicher das das was ich mir da zusammen geschrieben habe deutlich einfacher und kompakter geht. DIe Datei ist aber über die Zeit immer weiter gewachsen in ihren Funktionen und ich habe mir das alles selbst erlesen und probiert, gelernt habe ich davon nie etwas.
Deswegen benötige ich ja auch Hilfe :)

Es soll hier auch nicht darum gehen vorhandenes abzuändern, sondern lediglich die weitere Funktion da irgendwie einzubauen.

Also nochmal genau erklärt :
Eine automatisch generierte Zahl zwischen 10 und 99 die in der aktuellen Tabelle der Mitarbeiter als Fahrernummer noch nicht vorkommt und auch in den vergangenen 12 Monaten nicht im Einsatz war.

Viele Grüße ins Morgenland ? :)
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 14:38:54
Alexwin
Hallo Piet,

danke für deinen beitrag. Leider verstehe ich nicht ganz was du meinst.

Wie erstellt ihr ein neues Tabellenblatt ??

Ich habe meine Datei mal bearbeitet und alles mögliche daraus gelöscht um die hier nun doch mal hochzuladen.
Die wesentliche Funktion Adressenliste und Adressenarchiv funktioniert noch, der Rest erzeugt Debug-Fehler.

Vielleicht ist es so verständlicher..

https://www.herber.de/bbs/user/174826.xlsm
Anzeige
AW: Fahrernummer automatisch erstellen
12.01.2025 15:43:44
Piet
Hallo Alexwin

ich lade dir mal eine Beispieldatei hoch, die ich gerade erstellt habe. Vielleicht können andere sie brauchen?
Das ging natürlich völlig an deiner Aufgabe vorbei. -- Bei euch wir KEIN neues Sheet für Mitarbeiter erstellt.

Was mich verwundert, in deiner Datei wird doch die ID-Nr automatisch auf die nächste ID-Zahl gesetzt.
So gesehen verstehe ich die gesamte Anfrage nicht so ganz??? - Mir ein Rätsel aus -> "1001 Nacht"
Eine dezente Anspielung auf meinen Standort - Izmir/TR
https://www.herber.de/bbs/user/174827.xlsm

PS da gibt es viele Makros mit Select, die könnte man sicher verkürzen. Bei der Menge ist das aber viel Arbeit.

mfg Piet
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18