Suchen von nicht durchgestrichenen Wörtern in einer Arbeitsmappe
#1
Hi in unserem Plan muss ich die Anzahl von  Wörtern suchen, die nicht durchgestrichen sind?!

Das Wort steht leider mal als normales Wort in der Arbeitsmappe und mal ist es durchgestrichen, ich möchte nur die Wörter zählen die nicht durchgestrichen sind.

Über suchen kann ich die Wörter zählen lassen und finden, in der Auflistung unten im suchen Feld, sind dann leider auch die durchgestrichenen Wörter mit aufgezählt, nur leider sind die komischer Weise dort nicht durchgestrichen, sodass ich sie mir nur umständlich in jedem Tabellenblatt auszählen müsste.

Gibt es bei Suchen so eine Funktion oder Trick dass die Funktion nur die nicht durchgestrichenen Wörter sucht??

Vielleicht kann jemand helfen

Danke sehr!!
Antworten Top
#2
Nachfrage:

1) Sind die Wörter einzeln in je einer Zelle 
2) oder steht ein ganzer Text in einer Zelle und es sollen die Worte darin gezählt werden

sind es mehrere Zellen, die durchsucht werden sollen?

LG UweD
Antworten Top
#3
Hallo,

zu bedenken ist auch:
- in Excel kann die ganze ZELLE durchgestrichen werden
  oder
- nur einzelne Buchstaben einer Zelle oder eines Wortes

Was ist, wenn nur ein Teil des Wortes durchgestrichen ist?


Gruß Sigi
Antworten Top
#4
(24.07.2025, 11:02)UweD schrieb: Nachfrage:

1) Sind die Wörter einzeln in je einer Zelle 
2) oder steht ein ganzer Text in einer Zelle und es sollen die Worte darin gezählt werden

sind es mehrere Zellen, die durchsucht werden sollen?

LG UweD

Angenommen 1)

Daten stehen einzeln in Zellen von Spalte B

Code:
Sub Zählen()
    Dim SP As Integer, Zelle As Variant, Anz As Long
   
    SP = 2 'Daten stehen in B
   
    If WorksheetFunction.CountA(Columns(SP)) = 0 Then
        MsgBox "Keine Texte gefunden"
        Exit Sub
    End If
   
    For Each Zelle In Columns(SP).SpecialCells(xlCellTypeConstants, 3)
        If Zelle.Font.Strikethrough = False Then
            Anz = Anz + 1
        End If
    Next
   
    MsgBox Anz & " NICHTDurchgestrichene Wörter gefunden"
End Sub
Antworten Top
#5
Es stehen noch andere Wörter in dieser Zelle
Antworten Top
#6
(24.07.2025, 11:21)Franziose schrieb: Es stehen noch andere Wörter in dieser Zelle

Hallo nochmal

Dann so?

Es wird vorausgesetzt, 
- das immer das ganze Wort in dem Text (nicht) durchgestrichen ist
- Die einzelnen Worte durch Leerzeichen getrennt sind

Code:
Sub Zählen2()
    Dim SP As Integer, Zelle As Variant, Anz As Long, Arr
    Dim i As Integer, A As Integer, E As Integer
   
    SP = 2 'Daten stehen in B
   
    If WorksheetFunction.CountA(Columns(SP)) = 0 Then
        MsgBox "Keine Texte gefunden"
        Exit Sub
    End If
   
    For Each Zelle In Columns(SP).SpecialCells(xlCellTypeConstants, 3) 'nur Zellen mit Inhalt
        Arr = Split(Zelle, " ")
        For i = LBound(Arr) To UBound(Arr)
            A = InStr(Zelle, Arr(i)) 'Start
            E = Len(Arr(i)) 'Länge des Wortes
            If Arr(i) <> "" And Zelle.Characters(Start:=A, Length:=E).Font.Strikethrough = False Then
                Anz = Anz + 1 'Zählen
            End If
        Next
    Next
   
    MsgBox Anz & " NICHTDurchgestrichene Wörter gefunden"
End Sub


LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • Franziose
Antworten Top
#7
Danke UWe,

das sieht nicht aus wie eine Formel?? 

ich muss das als Modul in Vísual Basic einfügen, oder?

In welche Zelle muss ich das Suchwort schreiben?

Ich habe wohl vergessen zu beschreiben wo in jedem  Tabellenblatt gesucht werden soll.

In jedem Tabellenblatt soll der Bereich B2:D100 durchsucht werden 

Das gesuchte Wort würde ich in Zelle A1 schreiben
Antworten Top
#8
Hi
kannst du mal ne Beispieldatei hochladen die zeigt, wie die Werte vorliegen und wie du dir für dieses Beispiel das Ergebnis wünscht?
Das macht es leichter, einen entsprechenden Code zu schreiben.
um VBA wirst du hier vermutlich nicht herumkommen, da Excel nicht für das Auswerten von Zellformaten konzipiert ist.
Wenn du dann auch nicht die ganze Zelle als durchgestrichen formatiert hast sondern nur einzelne Wörter innerhalb der Zelle, wird es nochmal komplizierter.

Gruß Daniel
Antworten Top
#9
(24.07.2025, 11:51)Franziose schrieb: Danke UWe,

das sieht nicht aus wie eine Formel?? 

ich muss das als Modul in Vísual Basic einfügen, oder?

In welche Zelle muss ich das Suchwort schreiben?

Ich habe wohl vergessen zu beschreiben wo in jedem  Tabellenblatt gesucht werden soll.

In jedem Tabellenblatt soll der Bereich B2:D100 durchsucht werden 

Das gesuchte Wort würde ich in Zelle A1 schreiben

Hallo nochmal


Per Formel bekommst du das nicht hin. Deshalb VBA

- Rechtsclick auf den Tabellenblattreiter
- Code anzeigen
- rechts den Code einfügen

Bei Änderungen in A1 läuft der Code automatisch ab

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim RNG As Range, Zelle As Variant, Anz As Integer, Arr
    Dim i As Integer, A As Integer, E As Integer
   
    If Not Intersect(Target, Range("A1")) Is Nothing Then
       
        Set RNG = Range("B2:D100") 'Daten stehen hier
       
        If WorksheetFunction.CountA(RNG) = 0 Then
            MsgBox "Keine Texte gefunden"
            Exit Sub
        End If
        
        For Each Zelle In RNG.SpecialCells(xlCellTypeConstants, 3) 'nur Zellen mit Inhalt
            If InStr(Zelle, Trim(Target)) > 0 Then 'Ist Wort in Zelle?
                 Arr = Split(Zelle, " ")
                 For i = LBound(Arr) To UBound(Arr)
                     If Trim(Arr(i)) = Trim(Target) Then 'Ist Teilstring = Suchwort
                        
                         A = InStr(Zelle, Arr(i)) 'Start
                         E = Len(Arr(i)) 'Länge des Wortes
                        
                         If Arr(i) <> "" And Zelle.Characters(Start:=A, Length:=E).Font.Strikethrough = False Then
                             Anz = Anz + 1 'Zählen
                         End If
                        
                     End If
                 Next
            End If
        Next
               
        MsgBox Anz & "x '" & Target & "' NICHTdurchgestrichen gefunden"
    End If
End Sub

LG UweD
[-] Folgende(r) 1 Nutzer sagt Danke an UweD für diesen Beitrag:
  • Franziose
Antworten Top
#10
Hallo Uwe,

toll, das ist so schon richtig, leider ist es aber so dass dieser Code nur das Tabellenblatt durchsucht, in dem der Code von mir reinkopiert worden ist, alle anderen Tabellenblätter bleiben von der Zählung unbetroffen??

Oder könnte ich auch alle Tabellenblätter aktivieren und dann den code in den Editor kopieren??
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste