Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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
Anzeige

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
Anzeige

Infobox / Tutorial

Namenskürzel in Excel generieren


Schritt-für-Schritt-Anleitung

Um ein Namenskürzel in Excel zu erstellen, kannst du die folgende Anleitung befolgen. Diese Schritte sind speziell für Excel mit VBA-Funktionalität gedacht.

  1. Öffne deine Excel-Datei.

  2. Füge eine UserForm hinzu, die zwei Textboxen (TextBox1 für Nachnamen und TextBox2 für Vornamen) und eine dritte Textbox (TextBox5 für das Kürzel) enthält.

  3. Füge den folgenden VBA-Code in die UserForm ein:

    Private Sub TextBox2_AfterUpdate()
       Dim i As Byte
       If TextBox1.Text <> "" And TextBox2.Text <> "" Then
           For i = 2 To Len(TextBox2.Text)
               If Tabelle1.Range("F2:F200").Find(LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i))) Is Nothing Then
                   TextBox5.Text = LCase(Left(TextBox1.Text, 1)) & LCase(Left(TextBox2.Text, i))
                   Exit For
               End If
           Next
       End If
    End Sub
  4. Teste die Funktionalität, indem du Namen in die Textboxen eingibst.

  5. Stelle sicher, dass die Namensliste in Spalte F auf dem Tabellenblatt "Namensliste" korrekt aktualisiert ist, um Doppelvergaben zu vermeiden.


Häufige Fehler und Lösungen

  • Fehler: Kein Kürzel wird generiert.

    • Lösung: Stelle sicher, dass beide Textboxen (Nachname und Vorname) ausgefüllt sind, bevor du die Textbox für das Kürzel verlässt.
  • Fehler: Das Kürzel wird trotz vorhandener Einträge erstellt.

    • Lösung: Überprüfe die Range "F2:F200" in der Namensliste, um sicherzustellen, dass alle bereits existierenden Kürzel korrekt erfasst sind.

Alternative Methoden

Eine alternative Methode zur Generierung von Namenskürzeln könnte die Verwendung von Excel-Formeln statt VBA sein. Zum Beispiel kannst du die Funktion VERKETTEN nutzen, um die Anfangsbuchstaben zu kombinieren. Ein Beispiel für die Formel wäre:

=LOWER(LEFT(A1, 1) & MID(B1, 1, 2))

Hierbei steht A1 für den Nachnamen und B1 für den Vornamen. Dies ist jedoch weniger flexibel als die VBA-Lösung, da es keine Überprüfung auf bereits vorhandene Kürzel bietet.


Praktische Beispiele

Hier sind einige Namenskürzel Beispiele, die durch die oben genannte Methode erzeugt werden können:

  • Mustermann, Frank -> mfr
  • Müller, Max -> mma
  • Mühlen, Maritta -> mmr

Diese Beispiele zeigen, wie das Kürzel aus den Anfangsbuchstaben des Nachnamens und Vornamens erstellt wird. Achte darauf, dass die maximale Länge von 3 Buchstaben nicht überschritten wird.


Tipps für Profis

  • Erweiterung der Funktionalität: Du kannst die Logik im VBA-Code erweitern, um die Kürzel automatisch zu generieren, wenn ein neuer Eintrag in die Namensliste eingefügt wird.
  • Optimierung der Suche: Verwende die Application.Match-Funktion für eine schnellere Überprüfung auf bereits bestehende Kürzel.
  • Kürzel anpassen: Wenn du das Kürzel dynamisch anpassen möchtest, kannst du eine zusätzliche Schleife einfügen, die die Buchstaben anpasst, wenn ein Kürzel bereits vergeben ist.

FAQ: Häufige Fragen

1. Wie viele Buchstaben dürfen im Kürzel sein?
Das Kürzel darf maximal 3 Buchstaben enthalten.

2. Was passiert, wenn das Kürzel bereits vergeben ist?
In diesem Fall wird das Kürzel mit dem ersten Buchstaben des Nachnamens und dem ersten sowie dem dritten Buchstaben des Vornamens erstellt.

3. Welche Excel-Version benötige ich für diese Funktion?
Die beschriebenen Methoden sind für Excel-Versionen verfügbar, die VBA unterstützen (z. B. Excel 2010 und neuer).

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