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

Forumthread: Hilfe... Vor- und Nachnamen trennen

Hilfe... Vor- und Nachnamen trennen
21.11.2013 22:24:39
Albert
Guten Abend zusammen,
ich hab in meiner Tabelle Vor- und Nachnamen stehen, die von einander durch ein Komma getrennt sind...
Sprich... Mustermann, Max oder Hempels, Hermann.
Ich brings nicht auf die Reihe, dass ich zwei Textboxen versorge.
Würde mir bitte jemand zeigen, wie man das macht?
Gruß
A.

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe... Vor- und Nachnamen trennen
21.11.2013 22:45:07
Martin
Hallo Albert,
so zum Beispiel:
Sub SplitName() Dim strName As String strName = "Mustermann, Max" 'Nachname (TextBox1 =) MsgBox Trim(Split(strName, Chr(44))(0)) 'Vorname (TextBox2 =) MsgBox Trim(Split(strName, Chr(44))(1)) End Sub Viele Grüße
Martin

Chr(44) entspricht einem Komma, also geht auch...
21.11.2013 22:47:46
Martin

Sub SplitName()
Dim strName As String
strName = "Mustermann, Max"
'Nachname (TextBox1 =)
MsgBox Trim(Split(strName, ",")(0))
'Vorname  (TextBox2 =)
MsgBox Trim(Split(strName, ",")(1))
End Sub
...nur als kleiner Ergänzungshinweis...

Anzeige
Es geht noch effektiver...
21.11.2013 22:53:40
Martin
...mit nur einem Split...
Sub SplitName()
Dim varName As Variant
varName = Split("Mustermann, Max", ",")
'Nachname (TextBox1 =)
MsgBox Trim(varName(0))
'Vorname  (TextBox2 =)
MsgBox Trim(varName(1))
End Sub
Viele Grüße
Martin

AW: Es geht noch effektiver...
21.11.2013 23:16:41
Albert
Hallo Martin,
danke für deine Hilfe. Ich baus gleich mal ein...
Dankeschön und Gruß
A.

Anzeige
AW: Es geht noch effektiver...
22.11.2013 05:14:25
Luschi
Hallo Martin,
erzeugte Arrays sollte man auch wieder aus em Speicher werfen mit:
Erase varName
Gruß von Luschi
klein Paris

AW: Es geht noch effektiver...
22.11.2013 22:14:02
Martin
Hallo Luschi,
mir ist bekannt, dass es bei Objekt-Variablen (z.B. Dim objDic as Object) üblich ist den Speicher am Ende des Makros mit "Set objDic = Nothing" wieder freizugegeben. Ich habe aber noch nicht gelesen, dass sogar der für Arrays verwendete Speicher wieder freigegeben werden soll. Kannst du mir bitte eine Quelle geben, wo das steht? Auch im doch recht professionellen Buch "Excel programmieren" von Michael Kofler und Ralf Nebelo konnte ich dazu nichts finden.
Viele Grüße
Martin

Anzeige
möglich das ich jetzt falsch liege,...
23.11.2013 15:50:19
Tino
Hallo,
möglich das ich jetzt falsch liege,
aber ich denke in allen Fällen ist eher wichtig wo und wie die Variable deklariert wird.
Wenn ich die Variable innerhalb einer Sub oder Funktion deklariere wird diese nach beenden dieser zurückgesetzt (Ausnahme ist die Deklarierung als Static).
Egal ob Range, Object, Array oder normale Variable,
sonst würden diese nach erneuten Aufruf ihr Zuweisung behalten.
Gruß Tino

Anzeige
Das ist richtig, aber darum geht's eigentl ...
23.11.2013 16:58:21
Luc:-?
…nicht, Tino,
sondern um für Objekte reservierten Speicherplatz (deshalb ja auch als „Freigabe“ bezeichnet), was möglicherweise auch auf DatenFelder zutreffen mag (wie Luschi anmerkt). In anderen Sprachen wie zB J[ava]Script sind diese allerdings auch oft Objekte.
Gruß Luc :-?

Anzeige
bei mir wird die Auslastung zurückgesetzt
23.11.2013 18:22:55
Tino
Hallo,
also bei mir ist die Auslastung vom physischen und dem virtuellen Arbeitsspeicher gleich ob ich nun alles in einer Sub brav zurücksetzte oder nicht, also wird auch die Reservierung gleich behandelt.
Wenn ich die Deklarierung außerhalb mache, wird dieser wie erwartet nicht zurückgesetzt und die
Speicher Belastung steigt an und bleibt unverändert groß.
Da muss ich zurücksetzten um den effekt von oben zu bekommen.
Habe ich eben mit den üblichen Variablen durchgetestet.
Gruß Tino

Anzeige
Das Ganze ist ja auch strittig! Niemand ...
23.11.2013 19:42:12
Luc:-?
…scheint wohl zu wissen, wie sich das real auf moderne RT auswirkt bzw ob das immer noch nötig ist. Aber im Zweifel eben → sicher ist sicher (Arrays setze ich allerdings auch nicht zurück).
Luc :-?

AW: bei mir wird die Auslastung zurückgesetzt
23.11.2013 20:06:15
Luschi
E§in Hallo an Alle,
in VB.Net/C# gibt es die Using-Methode. Wenn man so ein Objekt definiert, dann sorgt das Framework dafür, daß mit 'End Using' alle Speichervariablen frei gegeben werden, die in diesem Using-Block definiert wurden und so der 'Garbage Collector' aufräumen darf. Solange es so einen Executer in VB6/Vba nicht gibt, ist es immer besser, selber die Objekte freizugeben als zu warten, bis das Hauptprogramm merkt, daß bestimmte Variablen durch Platzmangel im Hauptspeicher brach liegen und dann entfernt werden.
Genauso, wie ich dafür plädiere, im Vba-Code auch die Standard-Eigenschaften hinzuschreiben, wenn diese gemeint sind, so sollten auch alle Objektvariablen/Arrays eigenhändig zerstört werden.
Leider sind viele Vba erklärende Bücher und auch Videos von Video2Brain hier ein schlechtes Vorbild und verzichten auf das Nothing-Setzen von Objektvariablen bzw. Löschen von Arrays.
Gruß von Luschi
aus klein-Paris

Anzeige
AW: bei mir wird die Auslastung zurückgesetzt
24.11.2013 00:01:44
Tino
Hallo,
ok schlecht ist es auf alle Fälle nicht wenn man alles brav zurücksetzt.
Habe ich auch zu Anfangszeiten immer gemacht,
mittlerweile habe ich aber weder einen Vor noch einen Nachteil erkennen können.
Seit ca. ½ Jahr beschäftige ich mich auch mit VBNet aber bin rein von der System-Kompatibilität
vom Netframework nicht so recht zufrieden auch das startverhalten und die Stabilität ist recht dürftig.
(kann aber auch noch an mir liegen)
Mit VB6 habe ich da bessere Erfahrung, gerade mit Tools die fast ununterbrochen am Laufen sind und Excel VBA lehnt sich ja bekanntlich an VB6 an bzw. stammt davon ab.
Gruß Tino

Anzeige
Vor- und Nachnamen am Komma trennen
21.11.2013 22:50:09
Matthias
Hallo
Trenne es doch vorher mit Formeln
Tabelle1

 ABC
1Albert, SchweitzerAlbertSchweitzer
2Max , MustermannMaxMustermann
3Hempels, HermannHempelsHermann

Formeln der Tabelle
ZelleFormel
B1=GLÄTTEN(LINKS(A1;FINDEN(",";A1)-1))
C1=GLÄTTEN(TEIL(A1;FINDEN(",";A1)+1;LÄNGE(A1)))
B2=GLÄTTEN(LINKS(A2;FINDEN(",";A2)-1))
C2=GLÄTTEN(TEIL(A2;FINDEN(",";A2)+1;LÄNGE(A2)))
B3=GLÄTTEN(LINKS(A3;FINDEN(",";A3)-1))
C3=GLÄTTEN(TEIL(A3;FINDEN(",";A3)+1;LÄNGE(A3)))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Matthias

Anzeige
AW: Vor- und Nachnamen am Komma trennen
21.11.2013 23:17:36
Albert
Danke Matthias,
Das stellt dann Plan B dar...
Danke für deine Hilfe.
Gruß
A.

ein Plan B ist immer gut ;-) owT
21.11.2013 23:33:33
Matthias

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Vor- und Nachnamen in Excel trennen


Schritt-für-Schritt-Anleitung

Um in Excel Vor- und Nachnamen zu trennen, die durch ein Komma getrennt sind, kannst Du folgende Schritte befolgen:

  1. Öffne Deine Excel-Tabelle.
  2. Gib die Namen in die Spalte A ein. Zum Beispiel:
    A1: Mustermann, Max
    A2: Hempels, Hermann
  3. Verwende die folgenden Formeln in den entsprechenden Zellen:
    • In Zelle B1 (für den Nachnamen):
      =GLÄTTEN(LINKS(A1;FINDEN(",";A1)-1))
    • In Zelle C1 (für den Vornamen):
      =GLÄTTEN(TEIL(A1;FINDEN(",";A1)+1;LÄNGE(A1)))
  4. Kopiere die Formeln nach unten für die anderen Zeilen.

Diese Excel-Formeln helfen Dir, Vor- und Nachnamen aus einer Zelle zu trennen.


Häufige Fehler und Lösungen

  • Fehler: Die Formel zeigt einen Fehler an oder gibt falsche Werte zurück.

    • Lösung: Überprüfe, ob das Komma in den Namen korrekt platziert ist. Die Formeln setzen voraus, dass ein Komma vorhanden ist.
  • Fehler: Die Zelle bleibt leer.

    • Lösung: Stelle sicher, dass Du die Formel korrekt in die Zelle eingegeben hast und die Daten in der richtigen Zeile stehen.

Alternative Methoden

Eine weitere Methode, um Vor- und Nachnamen zu trennen, ist die Verwendung von VBA (Visual Basic for Applications). Hier ist ein einfaches Beispiel:

Sub SplitName()
    Dim varName As Variant
    varName = Split("Mustermann, Max", ",")
    MsgBox Trim(varName(0)) ' Nachname
    MsgBox Trim(varName(1)) ' Vorname
End Sub

Diese Methode eignet sich besonders, wenn Du viele Namen gleichzeitig verarbeiten möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die Formeln in einer Excel-Tabelle anwenden kannst:

A B C
Mustermann, Max Mustermann Max
Hempels, Hermann Hempels Hermann
Müller, Anna Müller Anna

Mit den oben genannten Formeln kannst Du diese Namen einfach trennen, indem Du sie in die Spalten B und C eingibst.


Tipps für Profis

  • Bulk-Operationen: Wenn Du viele Namen trennen musst, kannst Du die Formeln in eine Hilfsspalte ziehen, um Zeit zu sparen.
  • Datenvalidierung: Überprüfe Deine Daten immer auf Konsistenz, bevor Du die Formeln anwendest.
  • Makro erstellen: Wenn Du oft Namen trennen musst, erstelle ein Makro, um den Prozess zu automatisieren.

FAQ: Häufige Fragen

1. Wie kann ich Vor- und Nachnamen trennen, wenn sie ohne Komma geschrieben sind?
Wenn die Namen ohne Komma geschrieben sind, kannst Du die Formel anpassen, um ein Leerzeichen als Trenner zu verwenden.

2. Was mache ich, wenn die Namen unterschiedliche Trennzeichen haben?
In diesem Fall musst Du die Formeln anpassen, um das spezifische Trennzeichen zu berücksichtigen.

3. Funktionieren diese Formeln in allen Excel-Versionen?
Ja, die Formeln sind in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und neuer.

4. Gibt es eine Tastenkombination, um die Formeln schneller einzugeben?
Es gibt keine spezielle Tastenkombination, um diese Formeln einzugeben, aber Du kannst die Formeln kopieren und in andere Zellen einfügen, um Zeit zu sparen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige