Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1520to1524
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

Suchbegriffe in Tabelle farblich hervorheben

Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 09:25:56
arosswaag@t-online.de
Hallo,
ich habe eine Liste von Suchbegriffen.
Mit diesen Suchbegriffen möchte ich eine Tabelle durchsuchen.
Diese Suchbegriffe sollen dann, so sie Treffer aufweisen, in den einzelnen ZielZellen der Tabelle farblich hervorgehoben werden um sie schnell aufzufinden.
Geht das?
Wenn ja dann bitte wie?
Vielen Dank und Grüße, Alex

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 09:27:08
SF
Hola,
mit der bedingten Formatierung und Zählenwenn().
Gruß,
steve1da
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 09:37:09
arosswaag@t-online.de
Dann hab ich mich nicht genau ausgedrückt.
Mit der bedingten Formatierung wird die komplette Zelle markiert.
Ich möchte aber in der Zelle die hunderte Zeichen enthalten kann, genau nur den Suchbegriff als Ergebnis farblich markiert bekommen.
Geht das?
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 10:30:17
Daniel
Hi
eine einfache Funktion gibt es dafür in Excel meines Wissen nach nicht.
Mit VBA ließe sich eine entsprechende Funktion programmieren.
bei VBA-nein wäre ein möglicher Workaround die Inhalte in ein Programm zu übertragen, dass über die entsprechenden Suchmöglichkeiten verfügt und dann dort zu suchen.
du könntest also die Inhalte kopieren und in Word einfügen, oder als PDF speichern um dann die Suchfunktionen dieser Programme nutzen zu können.
Gruß Daniel
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 10:45:15
arosswaag@t-online.de
Ok, danke.
So helfe ich mir derzeit "zu Fuß".
Kannste die VBA Lösung? Oder ein anderer Auskenner?
Würde mich gerne daran probieren.
Danke und Grüße, Alex
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 10:54:56
Daniel
kann ich schon.
ist die Frage, ob dir das bei VBA-nein was hilft.
Gruß Daniel
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 11:10:49
arosswaag@t-online.de
wie würde denn Deine Hilfe aussehen?
Erhöhe dann mal auf "VBA geht so".
Den Code einbinden und zum Laufen bringen sollte mir gelingen, auch grundlegende Adaptionen.
Grüße, Alex
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 11:27:24
Daniel
Die Hilfe könnte so aussehen:
1. gehe mal in die Zelle und färbe den gesuchten Text von Hand um (in der Bearbeitungszeile markieren und Farbe ändern)
2. zeichne das ganze mit dem Recorder auf.
Dann siehst du schon mal die Grundfunktion zum Umfärben.
allerdings bin ich mir nicht ganz sicher, ob deine Excelversion das aufzeichnet. in Excel 2007 ist der Markorecorder Schrott
daher hier der Code, bearbeitet werden die selektierten Zellen:

Sub Wort_In_Text_Färben()
Dim txt As String
Dim i As Long
Dim Zelle As Range
txt = InputBox("Bitte Suchtext eingeben")
If txt = "" Then Exit Sub
Selection.Font.ColorIndex = xlAutomatic
For Each Zelle In Selection
i = 0
Do
i = InStr(i + 1, Zelle.Value, txt)
If i = 0 Then Exit Do
Zelle.Characters(Start:=i, Length:=Len(txt)).Font.Color = vbRed
Loop
Next
End Sub
Gruß Daniel
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 12:25:31
arosswaag@t-online.de
Hallo Daniel,
bin schon ein Stück schlauer :) Danke schon mal...
Also gut ist: es funzt grundsätzlich.
Was ich mir anders vorstelle:
- GROSS- und Kleinbuchstaben sollten für die Suchkriteren/Ziele egal sein
- Ich habe ein Liste mit mehreren Suchschlagworten. Möchte also nicht jedes "zu Fuß" eingeben
Haste noch ne Idee?
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 12:48:23
Andreas
Hi,
keine Ahnung, ob es in diesem Fall Sinn macht, aber mit UCase kann man Text in Großschrift umwandeln. Wenn man dies für die Eingabe und Suchzelle anwendet, wäre die Schreibweise egal.
Grüße
Andreas
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 13:15:51
alex
Hallo Andreas,
hab ehrlich gesagt keine Ahnung was du damit meinst und wie das mir bei der Listensuche weiterhilft.
Verwandelt in VBA, damit ich das adaptieren kann wäre super ;)
Noch jemand ne Idee?
Danke und Grüße
Alex
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 13:27:09
Andreas
Hi Alex,
in den Code von Daniel eingebaut, würde ich es so machen:
   Sub Wort_In_Text_Färben()
Dim txt As String
Dim i As Long
Dim Zelle As Range
txt = InputBox("Bitte Suchtext eingeben")
txt = UCase(txt)
If txt = "" Then Exit Sub
Selection.Font.ColorIndex = xlAutomatic
For Each Zelle In Selection
i = 0
Do
i = InStr(i + 1, UCase(Zelle.Value), txt)
If i = 0 Then Exit Do
Zelle.Characters(Start:=i, Length:=Len(txt)).Font.Color = vbRed
Loop
Next
End Sub
Grüße
Andreas
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 13:29:56
Andreas
Oder das obere UCase raus und unten mit rein
   Sub Wort_In_Text_Färben()
Dim txt As String
Dim i As Long
Dim Zelle As Range
txt = InputBox("Bitte Suchtext eingeben")
'txt = UCase(txt)
If txt = "" Then Exit Sub
Selection.Font.ColorIndex = xlAutomatic
For Each Zelle In Selection
i = 0
Do
i = InStr(i + 1, UCase(Zelle.Value), UCase(txt))
If i = 0 Then Exit Do
Zelle.Characters(Start:=i, Length:=Len(txt)).Font.Color = vbRed
Loop
Next
End Sub

Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 13:41:06
alex
Hey, läuft... ABER, wie gesagt möchte ich meine 20 Suchbegriffe nicht "zu Fuß" eingeben, sondern aus einer Liste mit Suchbegriffen "füttern".
Haste da auch ne Idee?
Danke und Grüße
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 14:05:26
Michael
Hi,
zunächst finde ich, das auskommentierte txt=UCase(txt) direkt nach der Inputbox war schon richtig: wozu diese FUNKTION bei jedem Schleifendurchlauf aufrufen?
Analog die len(txt): einmal Dim lTxt as Long und einmal zuweisen, direkt unter dem vorhergehenden Befehl: lTxt = len(txt) und man kann unten in der .Characters schreiben: Length:=lTxt
Zur "Liste": wie liegt die denn vor? Ist das ein Zellbereich á la Range("A1:A20") oder ein Array oder was?
Bei sehr vielen Daten wäre es noch zu testen, ob .Find nicht schneller ist, als alle Zellen einzeln durchzunudeln...
Schöne Grüße,
Michael
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 14:23:22
Daniel
Hi
im Instr kann man über den noch fehlenden 4. Parameter angeben, ob bei der Suche Groß- und Kleinbuchstaben berücksichtigt werden sollen oder nicht (genaueres bitte in der Hilfe nachlesen).
das Thema "Auswahl von 20 Suchbegriffen" würde ich bei "Excelprofi" und "VBA Anfänger" so lösen:
1. der Suchbegriff wird aus einer Zelle gelesen, dh txt = Range("A1").value anstelle von txt = Inputbox(...)
2. für diese Excelzelle realisierst du die Auswahl der 20 Begriffe per DropDown über Daten - Datentools - Datengültigkeit (einem Excelprofi muss man das hoffentlich nicht mehr erklären)
3. das makro startets du dann, nachdem du den Begriff eingegeben hast.
Gruß Daniel
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 14:31:55
alex
Danke Michael und danke Daniel,
die Liste der Suchbegriffe ist im Nachbarregister A1:A20ff hinterlegt.
Und habe mich offensichtlich noch immer zu ungenau ausgedrückt.
ALLE Suchbegriffe aus der Liste sollen im Ziel gesucht werden. Als würden alle Suchbegriffe in einer Zelle stehen. Also gleichzeitig angewendet werden.
Danke und Grüße, Alex
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 14:37:37
Daniel
Hi
naja, dann halt noch ne zusätzliche Schleife über alle Suchbegriffe machen:
...
dim Suchbegriffe as Range
for Each Suchbegriffe in Range(Cells(1, 1), Cells(1, 1).end(xldown))
txt = Suchbegriffe.Value
For each Zelle in Selection
i = 0
Do
i = Instr(i + 1, Zelle.Value, txt)
.... hier dann weiter wie bisher
Loop
Next
Next
Gruß Daniel
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 15:10:20
alex
klappt soweit... nur das in Deinem Vorschlag die Suchliste in der selben Tabelle zu finden sein muss und nicht im Nachbarregister "Suchbegriffe"
Grüße, Alex
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 16:27:05
Michael
Hi,
dann eben mit Array:
...
dim Sb, iSb&
Sb = Sheets("Suchbegriffe").Range("A1",Cells(1, 1).end(xldown))
for iSb= 1 to ubound(Sb)
txt = Sb(iSB,1)
For each Zelle in Selection
i = 0
Do
i = Instr(i + 1, Zelle.Value, txt)
.... hier dann weiter wie bisher
Loop
Next
Next
Schöne Grüße,
Michael
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 16:42:16
alex
Danke Michael,
aber gibt immer nen Laufzeitfehler zur VBA-Zeile:
Sb = Sheets("Suchbegriffe").Range("A1",Cells(1, 1).end(xldown))
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
04.11.2016 17:49:19
Michael
Hi,
das klappt bei mir anstandslos:
Sub test()
Dim Sb, iSb&
Sb = Sheets("Suchbegriffe").Range("A1", Cells(1, 1).End(xlDown))
For iSb = 1 To UBound(Sb)
MsgBox Sb(iSb, 1)
Next
End Sub
Bist Du sicher, daß Du das Dim entsprechend geändert hast? Auf Sb, ... ohne as Range usw.?
Abgesehen davon: wenn nur ein Wert in A1 steht und kein weiterer darunter, springt xlDown bis zur untersten Zeile... Dann nimm halt Range("A1:A20") oder ermittle die unterste Zeile extra:
Sub test2()
Dim Sb, iSb&
iSb = Range("A" & Rows.Count).End(xlUp).Row
If iSb = 1 Then
ReDim Sb(1, 1)
Sb(1, 1) = Sheets("Suchbegriffe").Range("A1")
Else
Sb = Sheets("Suchbegriffe").Range("A1:A" & iSb)
End If
For iSb = 1 To UBound(Sb)
MsgBox Sb(iSb, 1)
Next
End Sub
Diese "blöde" If-Abfrage entfällt bei der Benutzung von Ranges; falls nur ein Wert vorhanden ist, wird standardmäßig nämlich kein Array, sondern nur ein Wert zugewiesen, so daß die Schleife mit ubound(a) dann nämlich auf eine Fehlermeldung laufen würde - die mit dem If sauber umgangen wird.
Schöne Grüße,
Michael
Anzeige
AW: Suchbegriffe in Tabelle farblich hervorheben
07.11.2016 08:46:48
alex
ich geb auf und helfe mir mit der Variante im selben Arbeitsblatt.
danke
AW: Suchbegriffe in Tabelle farblich hervorheben
07.11.2016 23:11:32
Daniel
Hi
ihr scheitert mal wieder am typischen Anfängerfehler:
wenn man mit mehrern Tabellenblättern arbeitet, muss man das Tabellenblatt vor JEDEM Zellbezug, dh vor jedem Cells, Range, Columns oder Rows hinschreiben.
das gilt auch für die Cells innerhalb von Range!
Das habt ihr hier nicht beachtet:
Sheets("Suchbegriffe").Range("A1", Cells(1, 1).End(xlDown))
müsste lauten:
Sheets("Suchbegriffe").Range("A1", Sheets("Suchbegriffe").Cells(1, 1).End(xlDown))
der Zellbezug über den Adressstring A1 wird automatisch richtig zugeordnet, aber das Cells ohne Tabellenblatt bezieht sich immer auf das aktive Blatt.
Zum Fehler kommt es, wenn die Cells in der Range auf ein anderes Tabellenblatt referenzieren als die Range selbst, dh es kommt kein fehler, wenn zufälligerweise das passende Tabellenblatt aktiv ist.
(weshalb man diesen Fehler auch beim Testen gerne übersieht)
Gruß Daniel
stimmt! Au weia... Gruß, owT
10.11.2016 14:28:55
Michael
M.
nochmal von vorne
07.11.2016 17:40:33
vorne
Hi Alex,
Du gibst zu schnell auf!
Allerdings habe ich mir den Thread nochmal angesehen: da ist keine Beispieldatei vorhanden...
Ich vermute stark, daß Du da nur irgendeinen Tippfehler (Buchstabendreher) drin hast oder so.
Lade halt mal das Ding anonymisiert hoch, dann schaun wir nochmal drüber...
Schöne Grüße,
Michael

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige