1.4k Aufrufe
Gefragt in Tabellenkalkulation von suki Mitglied (131 Punkte)
Hallo zusammen,

ich habe eine Excel-Tabelle mit Daten. Nun möchte ich aus Tabelle 1 sämtliche Wörter mit bestimmten Buchstabenfolgen kopieren.

Bsp.: Das Haus der Maus.

Ich suche nach "aus", nun sollen mir sämtliche Wörter in Tabelle 2 kopiert werden, die "aus" enthalten, also stünde in Tabelle 2 dann: Haus Maus. Im optimalen Fall stünden die zwei Ergebnisse dann in Tabelle 2 in zwei verschiedenen Spalten, aber alles in einer Spalte ginge notfalls auch.

Hat mir jemand eine Idee, wie ich das bewerkstelligen könnte? Über ein Makro?

Vielen Dank schon Mal!
Suki

16 Antworten

0 Punkte
Beantwortet von suki Mitglied (131 Punkte)
Hallo M.O.,

es erscheint der Fehler 2042, wenn ich den Cursor auf "Zelle" halte.

Groß- und Kleinschreibung kann es nicht sein, ich habe die gesuchten Zeichenfolgen jetzt einmal ersetzt, sodass das kein Problem mehr darstellen dürfte.

Gruß
Suki
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Suki,

vielen Dank für deine Messager-Nachricht.
Ich bin doch noch früher dazu gekommen, mir die Datei anzusehen.
Der Fehler kommt daher, dass in einigen Zellen #N/V steht.
Ersetze die Zeilen
'Suchroutine
For Each Zelle In Daten
Daten1 = Split(Zelle, " ")

durch
'Suchroutine
For Each Zelle In Daten
On Error Resume Next
Daten1 = Split(Zelle, " ") 'Zelleninhalt wird aufgteilt, Trenner ist Leerzeichen

Auch die Anzahl der gefundenden Begriffe sollte dadurch stimmen. Ich habe mal nach "Face" durch Suchen und Ersetzen suchen lassen sowie das Makro ohne das Löschen aller gefundenen Begriffe durchlaufen lassen und das mit den zusammengezählten Werten verglichen und sie haben übereingestimmt. Das sind aber deutlich weniger, als in deiner vorhandenen Tabelle 2.

Gruß

M.O.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

On Error Resume Next
wird immer irgendwann zum bösen Bumerang :-)

alternativ !
eine geschachtelte if abfrage auf Inhalt

gruss nighty
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hi Nighty,

hast natürlich recht. Werde mich noch mal in Ruhe darum kümmern ;-).

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

so hier die verbesserte Suchroutine ;-):

'Suchroutine
For Each Zelle In Daten
If IsError(Zelle) = False Then 'nur falls Zelle kein Fehler ist, dann..
Daten1 = Split(Zelle, " ") 'Zelleninhalt wird aufgteilt, Trenner ist Leerzeichen
For AIndex = 0 To UBound(Daten1) 'aufgesplitteten Zellinhalt durchsuchen
If InStr(Daten1(AIndex), Eingabe) > 0 Then 'falls die Zeichenfolge gefunden wird,
WksZ = WksZ + 1 'Zähler um 1 erhöhen
Worksheets(2).Cells(WksZ, 1) = Daten1(AIndex) 'und Wort in Spalte A des 2. Tabellenblatts schreiben
End If
Next AIndex
End If
Next Zelle


Gruß

M.O.
0 Punkte
Beantwortet von suki Mitglied (131 Punkte)
Hallo Nighty und M.O.,

vielen Dank euch! Mit der verbesserten Suchroutine klappt das alles wunderbar! Vielen vielen Dank!

Grüße,
Suki
...