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

Text suchen per Makro

Text suchen per Makro
09.11.2021 13:56:49
Sebastian
Hi zusammen,
ich versuche gerade ein Paar Formeln in meiner Tabelle durch Markos zu ersetzen. Bin da allerdings nicht so der Fachmann.
Ich versuche mal zu erklären was ich suche :)
Das Makro müsste ab Zeile 19-5000, Zeile für Zeile in Spalte B durchsuchen ob Text " XY " darin vorkommt und in der selben, also passenden Zeile in Spalte I mit einem "JA" oder "X" ausgeben.
Für jemandem mit Plan, bestimmt nicht so schwer wie für mich :D
Danke schon mal ;)

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text suchen per Makro
09.11.2021 14:10:27
Pierre
Hallo Sebastian,

und in der selben, also passenden Zeile in Spalte I mit einem "JA" oder "X" ausgeben.
Meinst du, dass in Spalte I dann XYJA bzw. XYX stehen soll oder ausschließlich JA bzw. X?
Gruß Pierre
AW: Text suchen per Makro
09.11.2021 14:15:33
Sebastian
Hi Pierre, also er soll in der Zeile wo er Text " XY" gefunden hat JA in Spalte I Ausgeben. Also: Text in B 33 gefunden, dann in Zelle I 33 " JA " ausgeben. Wenn er nichts findet einfach nichts ausgeben :) Ich hoffe ich konnte es erklären.
AW: Text suchen per Makro
09.11.2021 14:29:29
Pierre
Hallo Sebastian,
irgendwie war mir das schleierhaft :-)
Aber du hast ja nun schon brauchbare Lösungen.
Gruß Pierre
Anzeige
AW: Text suchen per Makro
09.11.2021 14:12:36
ChrisL
Hi

Sub t()
With Range("I19:I" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=IF(ISERROR(FIND(""XY"",B19)),""X"",""JA"")"
.Value = .Value
End With
End Sub
cu
Chris
AW: Text suchen per Makro
09.11.2021 14:21:29
Sebastian
Hi Chris, Mega das klappt. Allerdings soll er nur beim Gefundenen XY "Ja" anzeigen. den Rest leer lassen :) Und kann ich eigentlich mehrere Makros mit unterschiedlichen Suchen nacheinander laufen lassen und in I ausgeben lassen ? Es gibt nichts doppelt, also müsste es gehen :)
AW: Text suchen per Makro
09.11.2021 14:33:06
ChrisL
Hi
Das X kann man auch weglassen, so wie bei der Lösung von Daniel.
Mehrere Makros kannst du laufen lassen, aber die Lösungen werden jeweils überschrieben. Ansonsten müsste man die Formel anpassen z.B. basierend auf dem Ansatz von Daniel:
.FormulaR1C1 = "IF(CountIF(RC2,""*XY*"")+CountIF(RC2,""*ZZ*"")+CountIF(RC2,""*ABC*""),""JA"","""")
cu
Chris
Anzeige
AW: Text suchen per Makro
09.11.2021 16:43:48
Daniel
Hi
nee, mehrere Makros dieser Art nacheinander laufen zu lassen geht nicht!
Dei Formel wird ja in alle Zellen geschrieben, dh wenn du jetzt ein zweites mal so ein Makro mit anderen Werten in die gleichen Zellen schreiben lässt, werden die dort vorhandenen Werte überschrieben!
du müsstest also deine mehreren Abfragen in eine einzige Formel packen.
wenn das mit der einen großen Formel für alles schweriig wird und mehrere solcher Formeln nacheinander ausführen willst, könnte man das auch machen, wenn man ab der zweiten Ausführung angibt, dass die Formel nur in die noch leeren Zellen geschrieben werden soll und nicht in die bereits gefüllten:

With Range("I19:I" & Cells(Rows.Count, 2).End(xlUp).Row)
.SpecialCells(xlcelltypeblanks).Formula = "=IF(ISERROR(FIND(""XY"",B19)),""X"",""JA"")"
.Value = .Value
End With
dh mit diesem Zusatz ".SpecialCells(xlcelltypeblanks)" kannst du dann auch mehrere solcher Blöcke hintereinander ausführen lassen
wobei das .Value = .Value immer auf den ganzen Zellbereich gehen muss. Es muss auch immer ausgeführt werden, damit die Zellen mit dem Formelergebnis "" auch wieder zu Leerzellen werden.
Wenn das auch nicht sinnvoll ist, kannst du immer noch die Schleife über die Zellen laufen lassen.
Die bearbeitet nur die Zellen, die bearbeitet werden sollen und lässt die anderen in Ruhe.

Dim Zelle as Range
For Each Zelle in Range("B19:B5000")
if Zelle.Value like "*XY*" then Zelle.Offset(0, 7).Value = "ja"
Next
Davon kannst du mehrere hintereinander laufen lassen, oder auch gleich mehrere IF-Prüfungen einbauen.
Solange das für dich schnell genug ist, kann man das auch so machen.
Gruß Daniel
Anzeige
AW: Text suchen per Makro
09.11.2021 14:20:55
Daniel
Hi
das einfachste ist, per Makro diese Formeln in die Zellen einzutragen und dann die Formeln durch Werte zu ersetzen.

With Range("I19:I5000")
.FormulaR1C1 = "IF(CountIF(RC2,""*XY*""),""JA"","""")
.Formula = .Value
End With
Gruß Daniel
AW: Text suchen per Makro
10.11.2021 08:44:38
Sebastian
Guten Morgen zusammen, das hat erst mal alles sehr gut geklappt. Ich hab es jetzt mit der Variante gelöst:

Sub finde_plusy()
With Range("I19:I" & Cells(Rows.Count, 2).End(xlUp).Row)
.Formula = "=IF(ISERROR(FIND(""+Y"",B19)),"""",""JA"")"
.Value = .Value
End With
End Sub

Es wäre nur super wenn ich das Makro starte, das er einmal vorher alle Zellen leert, da die Anzahl der Zeilen ja Variiert. Das heißt wenn beim letzten mal in Zeile 200 ein "JA" stand, bei nächsten mal aber nur 50 Zeilen vorhanden sind, bleibt das JA auf 200 ja stehen. Ich hoffe ihr versteht mich :D
Anzeige
AW: Text suchen per Makro
10.11.2021 08:59:32
Sebastian
habe das Problem mit dem Inhalt löschen selbst gelöst bekommen :) Ich wüsste allerdings gerne wie
Formula = "=IF(ISERROR(FIND(""+Y"",B19)),"""",""JA"")"
Diese Zeile aussehen müsste wenn ich quasi der UND 2 Textstellen suche. Also er soll ja ausgeben wenn "X" und "Y" in der Zeile gefunden wurden :)
Danke schon mal
AW: Text suchen per Makro
10.11.2021 10:42:14
ChrisL
Hi

=WENN(ODER(ISTFEHLER(FINDEN("X";B19));ISTFEHLER(FINDEN("Y";B19)));"";"JA")

"=IF(OR(ISERROR(FIND(""X"",B19)),ISERROR(FIND(""Y"",B19))),"""",""JA"")"
cu
Chris
AW: Text suchen per Makro
10.11.2021 10:46:38
Sebastian
Hi Chris,
ich hab auch das mal hier in mein Makro gepackt, aber so findet er leider nichts :( Also beide Bedingungen müssen erfüllt sein für ein JA, das wäre wichtig

Sub finde_hütchenundy()
Range("J19:J" & Rows.Count).ClearContents
With Range("J19:J" & Cells(Rows.Count, 2).End(xlUp).Row)
Formula = "=IF(OR(ISERROR(FIND(""^"",B19)),ISERROR(FIND(""Y"",B19))),"""",""JA"")"
.Value = .Value
End With
End Sub

Anzeige
AW: Text suchen per Makro
10.11.2021 11:26:36
ChrisL
Hi
Bei mir funktioniert die Formel. Den fehlenden Punkt im Makro musst du natürlich ergänzen.
cu
Chris
AW: Text suchen per Makro
10.11.2021 12:14:38
Sebastian
Stimmt :) So klappts :) Dankeschön :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige