Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1436to1440
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

Anzahl Wörter zählen in einer Filter-Auswahl

Anzahl Wörter zählen in einer Filter-Auswahl
28.07.2015 17:12:57
Julia
Liebe Mitglieder,
ich habe ein Excel VBA Problemchen :-(
Ich muss die Anzahl der Wörter in einer Filter-Auswahl zählen und dann in eine bestimmte Zelle in einem anderen Blatt eintragen. Erstmal wollte ich mir die Anzahl aber ausgeben lassen, um zu sehen, ob die Anzahl stimmt.
Ich schaffe es noch nicht das Zählen auf die ausgewählte Zellen zu beschränken.
Hier ist was ich bis jetzt habe:
Sub CountWords()
Dim cell As Range, rng As Range
ActiveSheet.Range("$A$14:$G$645").AutoFilter Field:=5, Criteria1:="1"
ActiveSheet.Range("$A$14:$G$645").AutoFilter Field:=6, Criteria1:="0"
Set rng = Range("$A$14:$G$645")
For Each cell In rng.SpecialCells(xlCellTypeVisible)
If Not cell.HasFormula Then
Content = cell.Value
Content = Trim(Content)
If Content = "" Then
cellWords = 0
Else
cellWords = 1
End If
Do While InStr(Content, " ") > 0
Content = Mid(Content, InStr(Content, " "))
Content = Trim(Content)
cellWords = cellWords + 1
TotalWords = TotalWords + cellWords
Loop
End If
Next cell
MsgBox TotalWords & " words found in the selected range."
End Sub
Ich hoffe, ihr könnt mir helfen.
Im Voraus schon mal vielen Dank!
Julia

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
28.07.2015 18:12:10
Sepp
Hallo Julia,
meinst du so?
Sub CountWords()
Dim cell As Range, rng As Range
Dim lngWords As Long, strContent As String

With ActiveSheet
  .Range("$A$14:$G$645").AutoFilter Field:=5, Criteria1:="1"
  .Range("$A$14:$G$645").AutoFilter Field:=6, Criteria1:="0"
  
  Set rng = Intersect(Selection, .Range("$A$14:$G$645").SpecialCells(xlCellTypeVisible))
  
  For Each cell In rng
    If Not cell.HasFormula Then
      strContent = Trim(cell.Text)
      If Len(strContent) Then
        If InStr(1, strContent, " ") > 0 Then
          lngWords = lngWords + UBound(Split(strContent, " ")) + 1
        Else
          lngWords = lngWords + 1
        End If
      End If
    End If
  Next
End With

MsgBox lngWords & " words found in the selected range."

End Sub


Gruß Sepp

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 11:19:00
Julia
Hallo Sepp,
vielen Dank für deine Antwort!
Leider funktioniert es noch nicht, wie ich es brauche. Ich bekomme die Meldung, dass 1 Wort gefunen wurde, obwohl dort mehr Wörter enthalten sind..Wenn ich den Range ändere, kommt trotzdem immer die gleiche Meldung
Gruß,
Yulia

AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 11:53:44
Sepp
Hallo Yulia,
zeig mal ein paar Beispieldaten in einer Beispieldatei.
Gruß Sepp

AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 12:41:21
Julia
Die Spalten 4 und 5 werden gefiltert. Dann soll die Anzahl an Wörtern in der Spalte A gezählt werden, oder in den anderen Spalten wenn notwendig. Nur verstehe ich nicht, wie und wo genau ich den Bereich angeben soll, in dem gezählt wird.
Danke und Grüße,
Yulia

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 12:46:47
Sepp
Hallo Yulia,
in deinem ersten Post schriebst du "Ich schaffe es noch nicht das Zählen auf die ausgewählte Zellen zu beschränken", deshalb bezieht sich mein Code auf markierte Zellen im Filterbereich.
Du meinst wahrscheinlich die sichtbaren Zellen im Filterbereich, dann so für Spalte A.
Sub CountWords()
Dim cell As Range, rng As Range
Dim lngWords As Long, strContent As String

With ActiveSheet
  .Range("$A$14:$G$645").AutoFilter Field:=5, Criteria1:="1"
  .Range("$A$14:$G$645").AutoFilter Field:=6, Criteria1:="0"
  
  Set rng = Intersect(Range("A:A"), .Range("$A$14:$G$645").SpecialCells(xlCellTypeVisible))
  
  For Each cell In rng
    If Not cell.HasFormula Then
      strContent = Trim(cell.Text)
      If Len(strContent) Then
        If InStr(1, strContent, " ") > 0 Then
          lngWords = lngWords + UBound(Split(strContent, " ")) + 1
        Else
          lngWords = lngWords + 1
        End If
      End If
    End If
  Next
End With

MsgBox lngWords & " words found in the selected range."

End Sub



Gruß Sepp

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 13:02:17
Julia
Hallo Sepp,
ja, ich habe mich wohl nicht ganz deutlich ausgedrückt im ersten Post, entschuldige bitte.
Aber ganz vielen Dank, das funktioniert jetzt! Nur eine Kleinigkeit stimmt noch nicht ganz: es werden drei Wörter weniger angegeben, als in der Spalte enthalten ist. Die Spalte beinhaltet auch sowas wie {}, ' und : und diese Einträge sollen auch als Wörter mitgezählt werden. Ich weiß nicht, ob sie wegeglassen werden beim Zählen oder etwas anderes..
Danke nochmals,
Yulia

AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 13:06:37
Sepp
Hallo Yulia,
da wären wieder einige Beispieldaten sehr hilfreich. Ich habe mich bei meinem Code auf deinen bezogen und da wurde nur das Leerzeichen als Trenner verwendet.
Freihändig mal so.
Sub CountWords()
Dim cell As Range, rng As Range
Dim lngWords As Long, strContent As String

With ActiveSheet
  .Range("$A$14:$G$645").AutoFilter Field:=5, Criteria1:="1"
  .Range("$A$14:$G$645").AutoFilter Field:=6, Criteria1:="0"
  
  Set rng = Intersect(Range("A:A"), .Range("$A$14:$G$645").SpecialCells(xlCellTypeVisible))
  
  For Each cell In rng
    If Not cell.HasFormula Then
      strContent = Trim(cell.Text)
      If Len(strContent) Then
        strContent = Replace(Replace(Replace(Replace(strContent, "{", " "), "}", " "), "'", " "), ":", " ")
        If InStr(1, strContent, " ") > 0 Then
          lngWords = lngWords + UBound(Split(strContent, " ")) + 1
        Else
          lngWords = lngWords + 1
        End If
      End If
    End If
  Next
End With

MsgBox lngWords & " words found in the selected range."

End Sub


Gruß Sepp

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 14:05:08
Julia
Hallo Sepp,
also es sollen die Wörter gezählt werden, die nach einem Leerzeichen getrennt sind, das ist schon richtig. Wie es auch im Word gezählt wird.
Ich habe jetzt genauer nachgeschaut, wie es mit deinem Code gezählt wird. Die Zeile
strContent = Replace(Replace(Replace(Replace(strContent, "{", " "), "}", " "), "'", " "), ":", " ")
habe ich nicht benötigt:
Es wird immer ein Wort zusätzlich addiert (also eins extra, obwohl es nicht existiert, z.B. "Locality" ist ein Wort, es werden aber zwei gezählt). Und bei zwei Leerzeichen die nacheinander kommen, wird auch ein Wort dazugezählt. Ansonsten scheint alles richtig zu sein.
Danke nochmals,
Yulia

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 14:09:44
Sepp
Hallo Yulia,
also bei meinen Tests wurde immer richtig gezählt.
Da wären wir schon wieder bei den Beispieldaten ;-))
Gruß Sepp

AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 14:18:02
Julia
Userbild

AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 14:19:20
Sepp
Hallo Yulia,
soll ich jetzt deine Tabelle nach dem Bild nachbauen?
Gruß Sepp

Anzeige
AW: Anzahl Wörter zählen in einer Filter-Auswahl
29.07.2015 14:33:15
Julia
Hallo Sepp,
nein, das brauchst du natürlich nicht.
Ich danke dir für die Hilfe!

314 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige