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

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

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
Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
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