Wörter per Makro suchen und markieren
Hallo Zusammen,
ich habe ein Problem mit VBA.
Ich benötige ein Makro, dass in einem Excel-Dokument nach einem von mir Vorgegebenen Pool verschiedener Wörte sucht.
In besagtem Dokument können Beleidigungen aller art vorkommen. nun möchte ich gerne eine Art Pool anlegen mit wörtern, nach denen das Makro suchen soll und diese dann frbig markiert.
Kann mir bitte jemand einen Vorschlag machen?
Vielen Dank im Voraus
Antwort schreiben
Antwort 1 von coros vom 28.10.2020, 14:40 Options
Hallo Probot,
schau mal auf
meiner HP in der
Rubrik Beispieldateien und dort dann in dem
Beispiel 47 nach. Dort stelle ich dazu eine Beispieldatei zur Verfügung, die Dir eventuell helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von nighty vom 28.10.2020, 15:35 Options
hi Probot :-)
welche tabelle denn oder alle ?
wie gross waeren die datenmengen einer tabelle um sie eventuell in ein aray zu legen ?
gruss nighty
Antwort 3 von Probot vom 28.10.2020, 15:41 Options
Hallo Oliver,
Vielen Dank für deine Antwort.
Ich habe leider feststellen müssen, dass meine Kenntnisse in VBA zu begrenzt sind um sowas korrekt zu programmieren. Habe es jetzt mehrmals versucht, weiß aber nicht wo ich was in welcher Form einfügen muss. ich benutzte das ganze erst seit kurzem und bin noch nicht sehr versiert.
Trotzdem Vielen Dank für deine Hilfe
Antwort 4 von Probot vom 28.10.2020, 15:45 Options
An nighty,
Da es sich um eine Firmen-Datenbank handelt ist die Datenmenge recht groß. über 10.000 Namen sind keine Seltenheit.
Eine Tabelle sieht so aus, dass in der obersten Zeile Anrede, Vorname Nachname etc. stehen und darunter alle daten aufgelistet werden
Antwort 5 von nighty vom 28.10.2020, 15:58 Options
hi Probot :-)
eine tabelle einer mappe oder alle tabellen einer mappe oder ausgesuchte tabellen einer mappe ?
welche spalten sollen durchsucht werden ?
in welcher tabelle und spalte einer mappe liegen die woerter ?
um einen relativ schnellen makroablauf zu gewaehrleisten sind diese angaben wichtig
gruss nighty
Antwort 6 von Probot vom 28.10.2020, 16:08 Options
Also, die Daten stehen in der Tabelle einer Mappe und zwar in den Spalten C D und E. In diesen Spalten liegen die Wörter.
Es ist so, dass kunden ihre NAmen und Adresse und so angeben und ab und zu sind da auch fakes dabei, die beleidigungen reinschreiben. solche müssten gefunden werden
Antwort 7 von nighty vom 28.10.2020, 17:13 Options
hi Probot :-)
eine mappe kann mehrere tabellen beinhalten
wo sind die daten die untersucht werden sollen
z.b. tabelle1 spalten c d e
genauso wo sind die woerter die du schon gesammelt hast zwecks vergleich,koennten auch ins makro waere nur umstaendlicher zu erweitern oder
z.b. tabelle2 spalte a
gruss nighty
Antwort 8 von nighty vom 28.10.2020, 17:55 Options
hi Probot :-)
folgendes scenario
Tabelle 1 spalten c d e sind daten die kontrolliert werden sollen
Tabelle 2 spalte a sind schimpfwoerter die als datenbank herhalten muss
bei beiden tabellen sind ueberschriften vorrausgesetzt
bei fund wird die jeweilige zelle von spalten c d e rot gefaerbt
automatische abtastung auf ende beider tabellen versteht sich von selbst,daher eine erweiterung der schimpfwoerterdatenbank ein leichtes ist
gruss nighty
Option Explicit
Sub DatenSuchen()
Call EventsOff
Dim Zzeile As Long
Dim Qzeile As Long
Dim zaehler0 As Integer
Dim zaehler1 As Long
Dim zaehler2 As Long
Zzeile = Sheets(1).UsedRange.SpecialCells(xlCellTypeLastCell).Row
Qzeile = Sheets(2).Range("A" & Rows.Count).End(xlUp).Row
ReDim Woerter(Qzeile, 1)
ReDim daten(Zzeile, 3)
Sheets(2).Select
Woerter() = Range("A1:A" & Qzeile)
Sheets(1).Select
daten() = Range("C1:E" & Zzeile)
For zaehler0 = 1 To 3
For zaehler1 = 1 To Zzeile
For zaehler2 = 2 To Qzeile
If daten(zaehler1, zaehler0) = Woerter(zaehler2, 1) Then Cells(zaehler1, zaehler0 + 2).Interior.ColorIndex = 3
Next zaehler2
Next zaehler1
Next zaehler0
Call EventsOn
End Sub
Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub
Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub