Live-Forum - Die aktuellen Beiträge
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

Exceltabelle auf bestimmte Wörter prüfen

Exceltabelle auf bestimmte Wörter prüfen
02.11.2016 15:37:58
frederik
Hallo,
wir haben folgendes Problem. Wir nutzen selber Exceltabellen, in denen wir unsere Produktbeschreibungen und Daten für unseren Onlineshop pflegen und diese dann in unsere Wawi importieren. Wir erhalten dort einige Beschreibungen von den Herstellern,
in denen Wörter aufgeführt sind, die wir nicht veröffentlichen dürfen.
Somit benötigen wir eine Abfrage, mit der wir die Listen nach diesen Wörtern kontrollieren können und dann anhand einer Markierung nachträglich bereinigen können.
mit der Tastenkombi Strg + F kann ich einzelne Wörter abfragen und suchen, doch benötigen wir eine bessere Lösung auf Basis einer Auflistung der problematischen Wörter, die nicht in den Beschreibungnen veröffentlicht werden dürfen.
Also wir hinterlegen dann wörter wie: Garantie,dauerhaft,perfekt und die Abfrage muss dann immer wenn diese Wörter oder Satzbausteine in der Tabelle vorhanden sind diese kennzeichnen, damit wir die Texte bearbeiten können. Basis muss dann eine Auflistung von Begriffen sein, nach denen gesucht wird. Wenn es neue Begriffe gibt, müssen die gepflegt werden und die Abfrage erkennen das auch nach den neuen Wörtern gesucht wird.
OPTIMAL wäre ein Tool, das auf knopfdruck eine Exceltabelle öffnet und nach den Wrtern sucht und dann makiert.
Viele Grüße
Frederik

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
02.11.2016 17:09:05
UweD
Hallo
- Eine Neue Datei anlegen und in Tabelle1 in Spalte A ab Zeile 2 die verbotenen Wörter schreiben.
- in diese Datei auch dieses Makro einfügen (in ein normales Modul)
- Nach dem Starten des Makros kannst du dann eine Datei auswählen,
- die wird geöffnet und
- das ERSTE Tabellenblatt wird komplett nach dem ersten Wort durchsucht.
- Fundstellen werden rot gefärbt
- Dann wird nach dem zweiten Eintrag gesucht. usw.
- Die Datei bleibt zum Schluss zur weiteren Bearbeitung geöffnet.
Sub Forbidden()
    On Error GoTo Fehler
    Dim TB, SP As Integer, ZE As Integer, i As Long, LR As Long
    Dim Pfad As String, Datei As String, DLG, C, firstAddress
    
    Pfad = "C:\Temp\"
    SP = 1 'Spalte A 
    ZE = 2 'ab Zeile 2 wegen Überschrift 
    
    Application.ScreenUpdating = False
    
    With ThisWorkbook.Sheets("Tabelle1")
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        
        Set DLG = Application.FileDialog(msoFileDialogFilePicker) 'Datei wählen 
        With DLG
            .AllowMultiSelect = False
            .InitialFileName = Pfad & "*.xlsx"
            .InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs - die Dateien als Detail 
        End With
        If DLG.Show = True Then
            Datei = DLG.SelectedItems(1)
            Workbooks.Open Filename:=Datei
            Set TB = ActiveWorkbook.Sheets(1) ' erste Blatt wird durchsucht 
            For i = ZE To LR
                Set C = TB.Cells.Find(.Cells(i, SP), LookIn:=xlValues)
                If Not C Is Nothing Then
                    firstAddress = C.Address
                    Do
                        With C.Interior 'Färben 
                            .Pattern = xlSolid
                            .PatternColorIndex = xlAutomatic
                            .Color = 255
                            .TintAndShade = 0
                            .PatternTintAndShade = 0
                        End With
                        Set C = TB.Cells.FindNext(C)
                    Loop While Not C Is Nothing And C.Address <> firstAddress
                End If
            Next
        End If
    End With

Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

LG UweD
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
02.11.2016 17:34:27
frederik
Hallo UweD,
vielen Dank für deine Rückmeldung. Da ich selber nur schlechte Kenntnisse haben, benötige ich dort eventuell eine Musterliste. Kannst du mir da vielleicht helfen und diese anfertigen. Gerne
kann ich auch was vorbereiten, aber ich denke es ist sinnvoller, wenn du mir dort ein Muster zuschickst, mit dem ich arbeiten kann.
Viele Grüße
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
02.11.2016 21:17:07
UweD
Hi
Excel und vba gut?
AW: Exceltabelle auf bestimmte Wörter prüfen
02.11.2016 21:36:49
frederik
Hi,
war das falsch?
Bin noch nicht lange auf der Seite Unterwegs. Kannst du mir bei der Problemstellung nun helfen?
Viele Grüße
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 09:00:26
UweD
Hi
hier eine Musterdatei. https://www.herber.de/bbs/user/109162.xlsm
Du musst ggf noch Anpassungen im angegebenen Bereich vornehmen.
    '* Anpassen*****
Pfad = "C:\Temp\" 'der Pfad, der bei der Dateiauswahl vorgeschlagen wird
Ext = "*.xlsx" ' Dateien dieser Endung werden voreingestellt
SP = 1 'Spalte A / Hier stehen die Sperreinträge
ZE = 2 'ab Zeile 2 wegen Überschrift
'* Ende Anpassen*****
Gruß UweD
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 09:47:19
frederik
Hi UweD,
vielen Dank für die Hilfe. Ich habe das Tool nun getestet und finde es sehr gut.
Gibt es eventuell noch die Mögichkeit dort immer nur das Sperrwort rot zu markieren?
Für die Bearbeitung in der Liste wäre es super, wenn ich z.B. auf eine Excel Zelle drauf gehe, bei der das Sperrwort oder Wörter stehen und dort sich ein Pop Up Fenster öffnet, in dem der Text Steht und in dem ich den Text dann gut bearbeiten kann.
In der normalen Ansicht ist es etwas unübersichtlich für eine gute Bearbeitung, da wir dann die Beschreibungen abändern müssen und es wesentlich einfacher ist wenn der komplette Text erscheint.
Viele Grüße
Frederik
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 10:56:45
frederik
Hi UweD,
ich habe noch eine Idee. Optimal wäre es noch beim öffnen der Datei eine Statusinfo per Pop Up
zu erhalten, in der steht, wie viele Badwords in der Tabelle sind.plus eine Statusmeldung, wenn die Liste bereinigt wurde.
Viele Grüße
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 11:02:08
UweD
Hi
Hier das geänderte Makro zum färben nur des Wortes.
Sub Forbidden()
    On Error GoTo Fehler
    Dim TB, SP As Integer, ZE As Integer, i As Long, LR As Long
    Dim Pfad As String, Datei As String, Ext As String
    Dim Suchwort As String, Länge As Integer, DLG, C
    Dim firstAddress As String, AbWo As Integer
    
    '* Anpassen***** 
    Pfad = "C:\Temp\" 'der Pfad, der bei der Dateiauswahl vorgeschlagen wird 
    Ext = "*.xlsx" ' Dateien dieser Endung werden voreingestellt 
    SP = 1 'Spalte A Hier sind die Sperreintrage 
    ZE = 2 'ab Zeile 2 wegen Überschrift 
    '* Ende Anpassen***** 
    
    Application.ScreenUpdating = False
    
    With ThisWorkbook.Sheets(1)
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        
        Set DLG = Application.FileDialog(msoFileDialogFilePicker) 'Datei wählen 
        With DLG
            .AllowMultiSelect = False
            .InitialFileName = Pfad & Ext
            .InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs - die Dateien als Detail 
        End With
        If DLG.Show = True Then
            Datei = DLG.SelectedItems(1)
            Workbooks.Open Filename:=Datei
            Set TB = ActiveWorkbook.Sheets(1) ' erste Blatt wird durchsucht 
            For i = ZE To LR
                Suchwort = .Cells(i, SP)
                Länge = Len(Suchwort)
                Set C = TB.Cells.Find(Suchwort, LookIn:=xlValues)
                If Not C Is Nothing Then
                    firstAddress = C.Address
                    Do
                        With C
                            AbWo = InStr(1, C.Text, Suchwort)
                            .Characters(Start:=AbWo, Length:=Länge).Font _
                                .Color = -16776961
                        End With
                        Set C = TB.Cells.FindNext(C)
                    Loop While Not C Is Nothing And C.Address <> firstAddress
                End If
            Next
        End If
    End With

Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 11:39:18
frederik
Hallo UweD,
sorry das ich dich nochmal nerven muss. Da ich selber das Makro nicht abändern kann und nur Benutzer bin,
bin ich auf deine Hilfe angewiesen. Kannst du mir das mit der Farbauswahl für das Badword, sowie Pop-Up der Zelle beim Auswählen der Zelle um den Text ordentlich Einzusehen und zu bearbiten, sowie Stausmedlung beim öffnen der Tabelle und Info wie viele Badwords in der Tabelle sind und eine Statusmeldung, wenn die Tabelle bereinigt ist umsetzen? Das wäre echt super!!
Viele Grüße
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 12:03:48
UweD
So, hier nochmal eine Änderung
Bei einem Fund kommt eine Box, ob geändert werden soll
- bei Ja, öffnet sich eine Inputbox, hier kann das Wort getauscht werden.
- bei Nein, wird das Wort rot gefärbt
Zum Schluss kommt noch die Info über Anzahl der Fundstellen.
Sub Forbidden()
    On Error GoTo Fehler
    Dim TB, SP As Integer, ZE As Integer, i As Long, LR As Long
    Dim Pfad As String, Datei As String, Ext As String
    Dim Suchwort As String, Länge As Integer, DLG, C, JaNein
    Dim firstAddress As String, AbWo As Integer, j As Integer, k As Integer
    
    '* Anpassen***** 
    Pfad = "C:\Temp\" 'der Pfad, der bei der Dateiauswahl vorgeschlagen wird 
    Ext = "*.xlsx" ' Dateien dieser Endung werden voreingestellt 
    SP = 1 'Spalte A Hier sind die Sperreintrage 
    ZE = 2 'ab Zeile 2 wegen Überschrift 
    '* Ende Anpassen***** 
    
    Application.ScreenUpdating = False
    
    With ThisWorkbook.Sheets(1)
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        
        Set DLG = Application.FileDialog(msoFileDialogFilePicker) 'Datei wählen 
        With DLG
            .AllowMultiSelect = False
            .InitialFileName = Pfad & Ext
            .InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs - die Dateien als Detail 
        End With
        If DLG.Show = True Then
            Datei = DLG.SelectedItems(1)
            Workbooks.Open Filename:=Datei
            Set TB = ActiveWorkbook.Sheets(1) ' erste Blatt wird durchsucht 
            TB.Cells.Font.ColorIndex = xlAutomatic
            For i = ZE To LR
                Suchwort = .Cells(i, SP)
                Länge = Len(Suchwort)
Restart:
                Set C = TB.Cells.Find(Suchwort, LookIn:=xlValues)
                If Not C Is Nothing Then
                    firstAddress = C.Address
                    Do
                        j = j + 1
                        With C
                            JaNein = MsgBox(Suchwort & ": gefunden" & vbLf & vbLf & "Text ändern", vbQuestion + vbYesNo, "Fundstelle")
                            If JaNein = vbYes Then
                                TB.Range(C.Address) = InputBox(C.Text, "Text ändern", C.Text)
                                k = k + 1
                                GoTo Restart
                            Else
                                AbWo = InStr(1, C.Text, Suchwort)
                                .Characters(Start:=AbWo, Length:=Länge).Font _
                                    .Color = -16776961
                            End If
                        End With
                        Set C = TB.Cells.FindNext(C)
                    Loop While Not C Is Nothing And C.Address <> firstAddress
                End If
            Next
        End If
    End With
    MsgBox "Es wurden " & j & " Badwords gefunden" & vbLf & vbLf & _
           k & " davon wurden geändert"

Fehler:
    If Err.Number <> 0 Then MsgBox "Fehler: " & _
        Err.Number & vbLf & Err.Description: Err.Clear
End Sub

LG UweD
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 12:13:33
frederik
Hi Uwe, kannst du mir das noch als neue Excel Datei schicken. Dann kann ich auch sofort loslegen und testen.
Viele Grüße
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 12:46:44
UweD
Hi
also du sollstest wirklich den Level VBA gut ändern.
Das Austauschen von Makrocode sollte da drin sein.
https://www.herber.de/bbs/user/109170.xlsm
LG UweD
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 13:09:18
frederik
Hallo Uwe,
vielen Dank für die Hilfe.Wie gesagt, ich dachte das Level ist für die Anforderung und nicht mein Staus.
Ich habe das Tool nun nochmal getestet. Finde ich sehr gut. Leider kann ich bei der Textänderung den Txt nicht abändern, sondern nur Text wegnehmen.Gibt es die Möglichket, dass das Texteingabefeld so Groß wie die festgesetzte Textangabe über dem Textfeld ist und direkt im Textfeld bei der Textbearbeitung auch Badwords mit Farbe sind. Dann ist das Bearbeiten und Suche nach den Badwords einfacher. Ich weiss ich nerve dich aber ich habe dadurch dann echt ein geiles Tool mit dem ich auf der Arbeit vollgasgeben kann.
Viele Grüße
FRederik
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 13:44:12
UweD
Also ich kann den Text direct in der Textbox ändert.
Ich habe aber auch nur wenige Wörter in einer Zelle stehen.
Wieviel Zeichen sind in deinen Zellen?
Maximal sind 254 Zeichen möglich.
Lade mal eine Musterdatei mit den Badwords im Text hoch.
Anstelle der inputbox könnte sonst ggf eine Userform mit Textfeld verwendet werden.
Das mit der Farbe in der Box geht aber nicht.
LG UweD
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 14:02:32
frederik
Hallo Uwe, anbei die Datei, ich hoffe du kannst die öffnen. Also drt sind sehr wahrscheinlich mehr als
254 Zeichen. Badword ist hier "dauerhaft". Was ist eine Userform mit Textfeld? Gerne einmal einbauen und dann teste ich das. Gibts dort die Möglichkeit den Text komlett anzuzeigen als Bearbeitungsfeld und mit farblicher Kennzeichnung der Badwords?
https://www.herber.de/bbs/user/109177.xlsx
Gruß
Frederik
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 14:16:32
frederik
Hi Uwe,
habe mir auch nochmal die Statusmeldung am Ende der Bearbeitung angesehen. Dort wird z.B. angeben
23 Badwords gefunden und 2 Bearbeitet. Das Bearbeitet bezieht sich auf das abändern vom Text und nicht auf ie Entfernung der Badwords. Kann man dort als Staus angeben 23 Badwords gefunden und 2 Bearbeitet, wenn wirklich auch 2 entfernt wurden. Also das man dort eine Erfolgskontrolle hat. Wenn ich z.B. die Liste beabeite und dann kurz aufhöre, weil ich andere Aufgaben machn muss, ich die Liste speichern kann, dann vorm speichern das Pop Up kommt und sagt Status bis dato z.B. Sie haben von 23 Badwords 12 erfolgreich bearbeitet und wenn die Bearbeitung wieder aufnehme der Status der Liste als erstes wiede angezeigt wird und eventuell ein Zeitstempel wann die Letzte Bearbeitung war. Super Geil wäre noch, wenn ich beim Öffnen und Speichern noch einen User Namen eingeben kann, damit jeder weiss, wer die Liste zuletzt angepackt hat. puhhhhhhh ich hoffe wir können das umsetzen :) Grüße
Frederik
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 14:48:41
UweD
Hallo nochmal
Ich höre jetzt hier auf.
- Das sind in dem Beispiel 5300 Zeichen in einer Zelle. (Es ist auch nur eine Zelle gefüllt)
- Die Badwords können mehrfach in der Zelle auftauchen
- Dazu kommt das Problem mit Teiltexten (also das Suchwort ist Bestandteil eines längeren Wortes)
g für dauerhaften Betrieb //
Das ist kein Excel mehr, sondern Word.
Mein Vorschag:
1) lass es beim Färben der kompletten Zelle bearbeite die Zellen in der Zelle selbst
2) oder mache "suchen und ersetzen". Das kann man natürlich auch per Makro machen
Bei 2) würde ich dir noch helfen; sonst bin ich raus
LG UweD
Anzeige
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 15:03:24
frederik
Hallo Uwe,
ich habe deine letzte Nachricht gelesen und fände es sehr schade, wenn wir dort schon am Ende sind.
Ich fande deine 2 Tabellenfunktion mit den Pop Ups extrem gut und dachte wir sind fast am Ziel.
Ist mein Ansatz dort zu krass oder kommen wir dort doch noch eventuell zu meiner Wunschvostellung.
Ich würde mich echt freuen, wenn du mir hierbei eine richtig geile Lösung bauen kannst. Gerne auch mit ein bisschen Zeit. Würdest du dir das eventuell nochmal überlegen?
Viele Grüße
Frederik
ich bin raus..
03.11.2016 15:09:18
UweD
.. der Text ist zu lang und Farbsteuerung in Textboxen, Inputboxen unmöglich
AW: da gehts weiter...
03.11.2016 17:35:17
frederik
Hi, dann keine Farbsteuerung sondern nur eine Textbox in der man ordentlich uns übersichtlich den Text anpassen kann. Plus die andere Addons?
Ode ein anderer Vorschlag, steh völlig auf dem Schlauch:(
Gruß
Frederik
AW: Exceltabelle auf bestimmte Wörter prüfen
03.11.2016 08:49:40
frederik
Hallo,
mir hatte gestern der UweD geholfen und dafürmöchte ich mich auch bedanken. Leider komme ich mit dem
Ergebnis nicht klar, da ich kein Wissen in VBA habe. Hae beim Level nicht richtig aufgepasst.
Nun hoffe ich der Uwe oder jemand anderes kann mir die Formel in eine Exceltabelle einfügen, damit wir die Abfrage für unsere Bedürfnisse nutzen können.
Sub Forbidden()
On Error GoTo Fehler
Dim TB, SP As Integer, ZE As Integer, i As Long, LR As Long
Dim Pfad As String, Datei As String, DLG, C, firstAddress
Pfad = "C:\Temp\"
SP = 1 'Spalte A
ZE = 2 'ab Zeile 2 wegen Überschrift
Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Tabelle1")
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
Set DLG = Application.FileDialog(msoFileDialogFilePicker) 'Datei wählen
With DLG
.AllowMultiSelect = False
.InitialFileName = Pfad & "*.xlsx"
.InitialView = msoFileDialogViewDetails 'Anzeige des Dialogs - die Dateien als  _
Detail
End With
If DLG.Show = True Then
Datei = DLG.SelectedItems(1)
Workbooks.Open Filename:=Datei
Set TB = ActiveWorkbook.Sheets(1) ' erste Blatt wird durchsucht
For i = ZE To LR
Set C = TB.Cells.Find(.Cells(i, SP), LookIn:=xlValues)
If Not C Is Nothing Then
firstAddress = C.Address
Do
With C.Interior 'Färben
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Set C = TB.Cells.FindNext(C)
Loop While Not C Is Nothing And C.Address  firstAddress
End If
Next
End If
End With
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Viele Grüße
Frederik
AW: Tipp
03.11.2016 09:01:32
MB12
Hallo Frederic,
lade eine kleine anonymisierte Beispieldatei hoch, bei denen 2-3 der "verbotenen" Begriffe vorkommen und liste diese Begriffe in einem neuen zusätzlichen Blatt auf. Diese Mühe musst du dir schon selbst machen.
Hochladen: Wird unter "Forum & Services" beschrieben.
Gruß, Margarete

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige