3.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

Ich versuche gerade ein Makro zu erstellen, welches ein bestimmtes Wort in einer Spalte Zählt!

Hier mein bisheriger Ansatz aus dem Internet :



Sub Text_Zählen()

' Zählt wie oft ein Wort im Haupttext des aktiven Dokuments vorkommt
' Groß-/Kleinschreibung wird beim Zählen nicht unterschieden
' hierzu ggf. MatchCase von "False" auf "True" setzen
Dim Wort As String, Anzahl As Integer, BoxTitel As String
BoxTitel = "Wort in Dokument zählen"
Wort = InputBox("Zu zählendes Wort ?", BoxTitel, "Text")
If Wort = "" Then Exit Sub
Anzahl = 0
With ActiveDocument.Content.Find
.ClearFormatting
.Text = Wort
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute(FindText:=Wort) = True
Anzahl = Anzahl + 1
Loop
End With
Ausgabe = MsgBox(Wort & " " & Anzahl & " mal", vbOKOnly, BoxTitel)
Text_Zählen Makro
'
' Tastenkombination: Strg+z
'
End Sub

Ich hoffe ihr könnt mir etwas weiter helfen....
mfg
fips

8 Antworten

0 Punkte
Beantwortet von
Übrigens handelt es sich dabei um eine Excel-liste!
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo fips,

geht es nun darum zu zählen, wie oft ein Wort in der Spalte xyz steht, sprich in jeder Zelle steht nur ein Wort oder soll aus einem gesamten Text heruasgefunden werden, wie oft ein Wort in dem Text vorkommt?
Ein bisschen genauer könntest Du schon werden, wenn wir Dir helfen sollen.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

es geht darum zu zählen, wie oft das Wort xy in der Spalte in den jeweiligen Zellen vorkommt. In den Zellen stehen jeweils Sätze /Texte oder manchmal auch nur ein Wort...

Das Makro sollte so funktionieren, dass ich das gesuchte Wort eingebe und es dann Zelle für Zelle in dieser Spalte überprüft und mir dann die Anzahl der Treffer ausgibt!


MfG
fips
0 Punkte
Beantwortet von
Im übrigen bringt er mir die Fehlermeldung :


Laufzeitfehler '424' :
Objekt erforderlich
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo fips,

mit nachfolgendem Makro sollte Dir geholfen sein. Es sucht den Begriff, den Du in einem Dialogfenster eingeben musst, in Spalte A.

Kopiere das Makro in ein StandardModul und starte es z.B. über eine Befehlsschaltfläche
Teste das Makro aber bitte in einer Testdatei und nicht gleich in Deiner Originaldatei.

Option Explicit

Sub Übereinstimmungen_finden()
Dim strSuchbegriff As String
Dim strAddresse As String
Dim lngAnzahl As Long
Dim rngFundstelle As Range

strSuchbegriff = InputBox("Schbegriff eingeben")

With Range("A1:A65536")
Set rngFundstelle = .Find(What:=strSuchbegriff, LookIn:=xlValues)
If Not rngFundstelle Is Nothing Then
strAddresse = rngFundstelle.Address
Do
lngAnzahl = lngAnzahl + 1
Set rngFundstelle = .FindNext(rngFundstelle)
Loop While Not rngFundstelle Is Nothing And rngFundstelle.Address <> strAddresse
End If
End With
MsgBox "Begriff " & strSuchbegriff & " wurde " & lngAnzahl & "x gefunden"
End Sub
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
0 Punkte
Beantwortet von
Hallo Oliver,

erstmal vielen Dank für die schnelle Hilfe!
Ich werde es sofort ausprobieren und dir dann Rückmeldung geben.

mfg
fips
0 Punkte
Beantwortet von
Hallo Oliver,

nochmals vielen Dank für deine Hilfe, hat alles super geklappt!

Bis zum nächsten mal ; )

mfg
fips
0 Punkte
Beantwortet von coros Experte (4k Punkte)
Hallo fips,

gerne geschehen. Danke auch für die Rückmelung.

MfG,
Oliver
[sub]Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du[/sub]
[sup] ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.[/sup]
...