Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1328to1332
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

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

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

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

Anzeige
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

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

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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige