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

Makro Suchen und Ersetzen

Makro Suchen und Ersetzen
15.06.2021 11:02:39
Raphael
Hallo zusammen,
ich würde gerne in einer in zufälliger Reihenfolge generierten Tabelle einen Namen Suchen und Ersetzen. Dazu habe ich folgendes Makro:

Sub FindandReplaceText()
Dim xFind As String
Dim xRep As String
Dim xRg As Range
On Error Resume Next
Set xRg = Cells
xFind = "Gruber"
xRep = "=Verketten(""Gruber, "";LINKS(INDIREKT(""ZS(-1)"";0);1))"
If xFind = "False" Or xRep = "False" Then Exit Sub
xRg.Replace xFind, xRep, xlPart, xlByRows, False, False, False, False
End Sub
Ersetzt werden soll der Name Gruber durch "Gruber, (Erster Bustabe der Zelle Links davon)". Die Funktion '=LINKS(INDIREKT(""ZS(-1)"";0);1) gibt diesen an.
Das Suchen und Ersetzten funktioniert auch. Lediglich wenn ich beides kombiniere Funktioniert es nicht.
Weitere Infos:
In Spalte A steht der Vorname
In Spalte B der Nachname (Gruber)
Als Alternativen zu "=Verketten(""Gruber, "";LINKS(INDIREKT(""ZS(-1)"";0);1))" habe ich bereits "=Verketten(""Gruber, ""&LINKS(INDIREKT(""ZS(-1)"";0);1))" und "=""Gruber, ""&LINKS(INDIREKT(""ZS(-1)"";0);1)" probiert.
Vielen Dank
Gruß Raphael

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Suchen und Ersetzen
15.06.2021 11:38:32
Daniel
Hi
dein Code ist ziemlich unvollständig.
Du suchst nicht nach Gruber, und auch dein hinzufügen des ersten Buchstabens wird nicht ausgeführt.
du triffst zwar die Vorbereitungen, in dem du Suchbegriff und Formel als Text bereit stellst, aber das wars dann.
wenn du das wirklich programmieren willst, dann so:

dim xFind as string
dim rFind as range
xFind = "Gruber"
set rFind = ActiveSheet.Columns(2).Find(what:=xFind, lookat:=xlwhole, lookin:=xlvalues)
if not rFind is nothing then then rFind.value = rFind.Value & left(rFind.Offset(0, -1).value, 1)
sollte der "Gruber" mehrfach vorkommen und an allen Stellen ersetzt werden, nicht nur an einer, dann in der letzten Zeile:

if not rFind is nothing then then Cells.Replace rFind.value, rFind.Value & left(rFind.Offset(0, -1).value, 1), xlwhole
Gruß Daniel
Anzeige
AW: Makro Suchen und Ersetzen
15.06.2021 12:45:39
Raphael
Hi Daniel,
vielen Dank erstmal. Das Makro läuft und ersetzt den Text. Es gibt nur ein Problem. Gruber kommt zweil mal vor und bei dem zweiten Eintrag wird auch der selbe Buchstabe (wie beim ersten Eintrag) dahinter übernommen. Ist es möglich den Code so anzupassen, dass der Buchstabe indivuell ewählt wird?

Sub probe()
Dim xFind As String
Dim rFind As Range
xFind = "Gruber"
Set rFind = ActiveSheet.Columns(2).Find(what:=xFind, lookat:=xlWhole, LookIn:=xlValues)
If Not rFind Is Nothing Then Cells.Replace rFind.Value, rFind.Value & ", " & Left(rFind.Offset(0, -1).Value, 1), xlWhole
End Sub
Viele Grüße Raphael
Anzeige
AW: Makro Suchen und Ersetzen
15.06.2021 16:38:58
Daniel
Hi
wenns individuell erstetzt werden soll, musst du die ersten Variante nehmen und sooft wiederholen, bis alle "Gruber" abgearbeitet wurden

Sub probe()
Dim xFind As String
Dim rFind As Range
xFind = "Gruber"
Do
Set rFind = ActiveSheet.Columns(2).Find(what:=xFind, lookat:=xlWhole, LookIn:=xlValues)
if rFind is Nothing then Exit do
rFind.value = rFind.Value & left(rFind.Offset(0, -1).value, 1)
Loop
End Sub
in Spalte A muss was stehen. ist Spalte A leer und in Spalte B steht "Gruber", gibts ne endlosschleife
Gruß Daniel
AW: Makro Suchen und Ersetzen
16.06.2021 07:21:55
Raphael
Hallo Daniel,
vielen Dank! Das Makro ist Perfekt und alles läuft wie es soll.
Gruß Raphael
Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige