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

Forumthread: Vorname Nachname tauschen VBA

Vorname Nachname tauschen VBA
19.09.2013 15:47:04
Hans
Hallo liebe Forumsteilnehmer(innen),
ich würde gerne in einer Tabelle in einem Feld den Vornamen und Nachnamen tauschen.
Die Werte stehen in Spalte M.
Mit folgender Formel
=TEIL(M3;FINDEN(" ";M3)+1;99)&", "&LINKS(M3;FINDEN(" ";M3)-1)
erhalte ich als Ergebnis
Nachname, Vorname.
Ich möchte das jetzt gerne als VBA haben, jeweils bis zum Tabellenende.
Also ersetze direkt in Spalte M die Werte bis zum Ende der Tabelle.
Hat jemand einen Tipp dazu. Vielen Dank!
VG Hans

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Vorname Nachname tauschen VBA
19.09.2013 16:09:48
Florian
Hallo Hans,
ungetestet, aber die Richtung sollte stimmen:
Sub namen_tauschen()
Dim Pos1, lReihe, n As Integer
Dim name, vorname, nachname As String
lReihe = Range("M65536").End(xlUp).Row
For n = 1 To lReihe
name = Cells(n, 13)
Pos1 = InStr(1, name, " ", 0)
vorname = Left(name, Pos1 - 1)
nachname = Right(name, Len(name) - Pos1)
Cells(n, 13) = nachname & " " & vorname
On Error Resume Next
Next n
End Sub
Gruß
Flo

Anzeige
AW: Vorname Nachname tauschen VBA
19.09.2013 16:19:11
Hans
Hallo Flo,
schon mal besten Dank!
Ich erhalte beim Aufruf folgenden Fehler:
Laufzeitfehler 5 Ungültiger Prozeduraufruf
in der Zeile: vorname = Left(name, Pos1 -1)
VG Hans

AW: Vorname Nachname tauschen VBA
19.09.2013 16:09:52
Florian
Hallo Hans,
ungetestet, aber die Richtung sollte stimmen:
Sub namen_tauschen()
Dim Pos1, lReihe, n As Integer
Dim name, vorname, nachname As String
lReihe = Range("M65536").End(xlUp).Row
For n = 1 To lReihe
name = Cells(n, 13)
Pos1 = InStr(1, name, " ", 0)
vorname = Left(name, Pos1 - 1)
nachname = Right(name, Len(name) - Pos1)
Cells(n, 13) = nachname & " " & vorname
On Error Resume Next
Next n
End Sub
Gruß
Flo

Anzeige
AW: Vorname Nachname tauschen VBA
19.09.2013 16:14:21
Rudi
Hallo,
Sub aaa()
Dim rngC As Range, Tmp, str, i
Application.ScreenUpdating = False
For Each rngC In Range(Cells(2, 13), Cells(Rows.Count, 13).End(xlUp))
Tmp = Split(rngC)
str = Tmp(UBound(Tmp)) & ", "
For i = 0 To UBound(Tmp) - 1
str = str & Tmp(i) & " "
Next
str = Left(str, Len(str) - 1)
rngC = str
Next
End Sub

Gruß
Rudi

Anzeige
AW: Vorname Nachname tauschen VBA
19.09.2013 16:22:15
Hans
Hallo Rudi,
auch dir besten Dank!
Bei dem Code erhalte ich den Fehler "Index ausserhalb des gültigen Bereichs"
Hast du da noch einen Ratschlag?
VG Hans

AW: Vorname Nachname tauschen VBA
19.09.2013 16:35:09
Rudi
Hallo,
dann gibt es in der Zelle nur 1 Wort, also kein Leerzeichen.
Gruß
Rudi

AW: Vorname Nachname tauschen VBA
19.09.2013 16:48:58
Hans
Hallo Rudi,
me culpa
Ich habe gesehen was ich falsch gemacht habe. Dein Code passt super. Ich hatte einen Fehler
in meiner Tabelle. sorry und vielen Dank nochmal.
VG Hans

Anzeige
in einem Rutsch..
19.09.2013 16:42:00
CitizenX
Hi,

Option Explicit
Sub wechseln()
Dim regex As Object: Set regex = CreateObject("vbscript.regexp")
Dim arr, out, myRange As Range
Set myRange = Range(Cells(2, 13), Cells(Rows.Count, 13).End(xlUp))
arr = Join(Application.Transpose(myRange), "#")
With regex
.ignorecase = True
.Global = True
.Pattern = "([a-zäüöß]+)\s([a-zäüöß]+)"
out = .Replace(arr, "$2,$1")
out = Application.Transpose(Split(out, "#"))
End With
myRange = out
End Sub
Grüße
Steffen

Anzeige
AW: in einem Rutsch..
19.09.2013 16:48:08
Hans
Hallo Steffen,
super vielen Dank funktioniert einwandfrei.
VG Hans

AW: Vorname Nachname tauschen VBA
19.09.2013 17:23:20
KlausF
Und noch einer:
Sub VornameNachname()
Dim lngLast As Long
lngLast = Range("M65536").End(xlUp).Row
'Bereich Spalte P anpassen
Range("P3:P" & lngLast).FormulaLocal = "=TEIL(M3;FINDEN("" "";M3)+1;99)&"", ""&LINKS(M3;FINDEN(" _
" "";M3)-1)"
Range("P3:P" & lngLast).Value = Range("P3:P" & lngLast).Value
End Sub
Gruß
Klaus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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