Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
492to496
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
492to496
492to496
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Text finden

Text finden
29.09.2004 18:25:36
Rainer
Hallo,
ich würde gerne wissen, wie oft das Wort "Muster" in Spalte A vorkommt.
Wie kann man das mit VBA lösen?
Mich interessiert vor allem die Schleifenkonstruktion.
Danke, Rainer

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text finden
29.09.2004 18:29:59
th.heinrich
hallo Rainer,
warum VBA nimm ZÄHLENWENN
gruss thomas
AW: Text finden
29.09.2004 18:42:05
Rainer
Aber dann werden die Zellen nicht gefunden, die mehr als "Muster" haben, wie z.B. "Das Muster ist fertig."
dann so
29.09.2004 18:59:05
th.heinrich
hi Rainer,
mit AUTOFILTER-BENUTZERDEFINIERT-ENTHÄLT Muster.
ausgabe ueber
=TEILERGEBNIS(3;$A$2:$A$10)
gruss thomas
AW: Text finden
29.09.2004 19:10:52
PeterW
Hallo Rainer,
mit VBA könnte das dann so gehen:

Sub TeileFinden()
Dim lngRow As Long
Dim lngCount As Long
Dim iLaenge As Integer
For lngRow = 1 To Range("A65536").End(xlUp).Row
If Len(Cells(lngRow, 1)) > 5 Then
For iLaenge = 1 To Len(Cells(lngRow, 1)) - 5
If LCase(Mid(Cells(lngRow, 1), iLaenge, 6)) = "muster" Then
lngCount = lngCount + 1
End If
Next
End If
Next
MsgBox lngCount
End Sub

Gruß
Peter
Anzeige
Jetzt bin ich aber enttäuscht...;-)
29.09.2004 20:38:27
Boris
Hi Peter,
...warum nicht die Worksheetfunction.Countif mit * als Platzhalter? ;-)
Grüße Boris
nicht nötig ;-)
29.09.2004 20:45:58
PeterW
Hallo Boris,
wollte auf Nummer sicher gehen und jedes Wort Muster in der Spalte zählen (also auch mehrfach in einer Zelle). Außerdem kann man auf diesem Weg so schön zwei Schleifen verschachteln. ;-)
Gruß
Peter
Meister der Schleifen...
29.09.2004 20:58:22
Boris
Hi Peter,
...insofern hast du natürlich Recht ;-)
Als Formelfan würd ich es aber so lösen:

Sub tu_es()
MsgBox [SUMPRODUCT(LEN(A1:A10)-LEN(SUBSTITUTE(A1:A10,"Muster",)))/LEN("Muster")]
End Sub

Wenn nicht zwischen Groß-und Kleinschreibung unterschieden werden soll, dann muss man noch SMALL einbauen.
Grüße Boris
Anzeige
AW: Meister der anderen Schleifen {}...
29.09.2004 23:18:41
PeterW
Hallo Boris,
ehe ich deinen Ansatz auch nur zur Hälfte verstanden habe ist der Code geschrieben und seeeehr viele Zellen sind abgearbeitet. ;-)
Gruß
Peter
AW: Text finden
29.09.2004 20:47:54
andre
Hallo Rainer,
um nicht jede Zelle einzeln zu durchsuchen bietet sich auch Find an:

Sub Makro1()
' Makro am 29.09.2004 von SchauAn aufgezeichnet
Dim Muster As Range, i As Long
Set Muster = Range("A:A").Find("Muster", [a1], xlValues, xlPart)
Do While Not Muster Is Nothing
i = i + 1
Muster.Activate
Set Muster = Columns(1).FindNext(After:=ActiveCell)
If Muster.Address < ActiveCell.Address Then Exit Do
Loop
MsgBox i
End Sub

Mit der Variante von Peter geht es dann so, falls der Begriff Muster mehr als 1x in der Zelle stehen kann:

Sub Makro2()
' Makro am 29.09.2004 von SchauAn aufgezeichnet
Dim Muster As Range, i As Long
Set Muster = Range("A:A").Find("Muster", [a1], xlValues, xlPart)
Do While Not Muster Is Nothing
i = i + 1
Muster.Activate
If Len(Muster.Value) > 5 Then
lngCount = 0
For iLaenge = 1 To Len(Muster.Value) - 5
If LCase(Mid(Muster.Value, iLaenge, 6)) = "muster" Then
lngCount = lngCount + 1
End If
Next
If lngCount > 1 Then i = i + lngCount - 1
End If
Set Muster = Columns(1).FindNext(After:=ActiveCell)
If Muster.Address < ActiveCell.Address Then Exit Do
Loop
MsgBox i
End Sub

Anzeige
AW: Text finden
29.09.2004 18:37:11
Oberschlumpf
Hi Rainer
Mit VBA gehts so:

Dim liSuche As Integer, liWert As Integer
For liSuche = 1 To Cells(Rows.Count, 1).End(xlUp).Row
If Range("A" & liSuche).Value = "Muster" then
liWert = liWert + 1
End If
Next
MsgBox liWert

Hilft das?
Ciao
Thorsten
AW: Text finden
29.09.2004 18:39:49
PeterW
Hallo Rainer,
dafür braucht es keine Schleife:

Sub Zaehlenwenn()
MsgBox = WorksheetFunction.CountIf(Columns(1), "Muster")
End Sub

Gruß
Peter
AW: Text finden
29.09.2004 18:42:43
PeterW
das "=" muss natürlich weg. ;-)
AW: Text finden
29.09.2004 18:42:55
Oberschlumpf
Und wieder hab ich was dazu gelernt...thx for helping :-)
Bye...
Anzeige
AW: =ZÄHLENWENN(A:A;"*Muster*") o.T.
29.09.2004 21:09:42
FP
.
Lies doch mal alle Beiträge...;-) oT
29.09.2004 21:37:42
Boris
und was sagt Rainer ??? ot.
03.10.2004 23:38:35
th.heinrich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige