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

Namenskürzel generieren

Namenskürzel generieren
10.11.2021 07:57:18
Kai
Hallo zusammen,
ich benötige dringend Hilfe bei der Erstellung von Namenskürzel.
Ich habe eine Textbox1 (für Nachnamen) und eine Textbox2 (für Vornamen). Aus diesen Textboxen soll in Textbox5 ein Namenskürzel generiert werden. Das Kürzel soll aus dem 1. Buchstaben des Nachnamens und den 2 Anfangsbuchstaben des Vornamens generiert werden. (Beispiel: Mustermann, Frank = mfr). Perfekt wäre es, wenn das generierte Kürzel mit den bereits vergebenen Kürzel (stehen in einem Tabellenblatt "Namensliste" in Spalte F) automatisch verglichen werden könnte, um Doppelvergaben zu vermeiden. Sollte dies der Fall sein, soll der nächste Buchstabe (also Buchstabe 1+3 des Vornamens) genommen werden. Die ganze Prozedur soll so lange fortgeführt werden, bis sich ein freies Kürzel findet. Die Beispieldatei befindet sich hier: https://www.herber.de/bbs/user/149041.xlsm
Bin für jede Hilfe Dankbar!!
Gruß Kai

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

Betreff
Datum
Anwender
Anzeige
AW: Namenskürzel generieren
10.11.2021 08:18:53
Stefan
Hallo Kai,
ich wusste jetzt nicht, was den Code auslösen soll. Evtl wenn "Nachname" und "Vorname" eingetragen wurde?
Was soll mit dem Kürzel passieren?
In folgendem Code speichert er das Kürzel in der Textbox(5/Kürzel).

Private Sub KürzelGenerieren()
Dim i As Byte
For i = 2 To Len(TextBox2.Text) 'Zeichen für Vorname "Min 2 // Max den gesamten Vornamen"
If Tabelle1.Range("F2:F200").Find(LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i))) Is Nothing Then 'wird gesucht ob das kürzel schon vorhanden
TextBox5.Text = LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i)) 'Kürzel in Textbox schreiben
Exit For 'Schleife verlassen
End If
Next
End Sub
Gruß
Stefan
Anzeige
AW: Namenskürzel generieren
10.11.2021 08:42:10
Kai
Hallo Stefan,
danke für die schnelle Antwort,
Das Kürzel sollte sich generieren, wenn die Textbox verlassen wird (Ende mit Vornamen)
AW: Namenskürzel generieren
10.11.2021 08:56:47
Stefan
Okey, dann als Textbox2_AfterUpdate

Private Sub TextBox2_AfterUpdate()
Dim i As Byte
If TextBox1  "" And TextBox2  "" Then 'Es muss ein Vor und ein Nachname eingetragen werden
For i = 2 To Len(TextBox2.Text) 'Zeichen für Vorname "Min2 Max den gesamten Vornamen"
If Tabelle1.Range("F2:F200").Find(LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i))) Is Nothing Then 'wird gesucht ob das kürzel schon vorhanden
TextBox5.Text = LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i)) 'Kürzel in Textbox schreiben
Exit For 'Schleife verlassen
End If
Next
End If
End Sub
Gruß
Stefan
Anzeige
AW: Namenskürzel generieren
10.11.2021 09:18:36
Kai
Danke Stefan, soweit klappt das schon ganz gut, einzig das er bei Gleichheit mehr als 3 Buchstaben (mehr geht nicht im System) generiert.
Als Beispiel:
Max Müller = mma
Maritta Mühlen = mma (das dies doppelt wäre soll dann mmr werden)
Wenn das Kürzel frei ist dann 1. Buchstabe Nachname + 2 Anfangsbuchstaben Vorname
Wenn das Kürzel schon vergeben ist dann 1.Buchstabe Nachname + 1. und 3. Buchstabe Vorname (wäre das auch schon belegt dann 1. und 4. Buchstabe etc.
Es dürfen aber max 3 Buchstaben für das Kürzel verwendet werden ...
Bekommst Du das auch hin? :-)
Danke!
Gruß Kai
Anzeige
AW: Namenskürzel generieren
10.11.2021 09:27:24
Stefan
Servus Kai,
sorry dann hab ich das am Anfang falsch verstanden ^^
Ich dachte des wird einfach verlängert.
Teste mal:

Private Sub TextBox2_AfterUpdate()
Dim i As Byte
If TextBox1  "" And TextBox2  "" Then
For i = 2 To Len(TextBox2.Text) 'Zeichen für Vorname "Min2 Max den gesamten Vornamen"
If Tabelle1.Range("F2:F200").Find(LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, 1)) & LCase(Right(Left(TextBox2.Text, i), 1))) Is Nothing Then 'wird gesucht ob das kürzel schon vorhanden
TextBox5.Text = LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, 1)) & LCase(Right(Left(TextBox2.Text, i), 1)) 'Kürzel in Textbox schreiben
Exit For 'Schleife verlassen
End If
Next
End If
End Sub
Gruß
Stefan
Anzeige
AW: Namenskürzel generieren
10.11.2021 10:32:17
Kai
Super Stefan!!!
Vielen lieben Dank! Es funktioniert so wie gedacht! Jetzt kann ich weiterbasteln ... :-)
Gruß Kai
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge