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

Schleife Text in Formel suchen

Schleife Text in Formel suchen
24.02.2018 13:39:43
Michael
Hallo liebes Forum,
kann mir bitte jemand mit einem Code helfen. Ich möchte in folgenden Bereichen nach dem Text 'Test' in Formeln suchen und diesen dann auch zählen. Das ganze sollte so wenig wie möglich an Zeit beanspruchen.
Bereiche:
Sheets("Januar").Range("O7:U18)
Sheets("Jan.Verdienst").Range("D6:P46")
Sheets("Voreinstellungen").Range("D7:I8")
Vielen Dank
Gruß
Micha

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schleife Text in Formel suchen
24.02.2018 14:03:34
Fritz
Hallo Micha
Ich denke etwa so sollte es funzen
Function checkInString(r As Range)
Dim numberOfResults%
Dim i%
Dim fieldText As String
fieldText = r.Value
i = 1
Do
If InStr(i, fieldText, "T", vbTextCompare) > 0 Then
numberOfResults = numberOfResults + 1
i = InStr(i, fieldText, "T", vbTextCompare) + 1
End If
Loop Until (InStr(i, fieldText, "T", vbTextCompare) = 0)
checkInString = numberOfResults
End Function

AW: Schleife Text in Formel suchen
24.02.2018 14:16:36
Michael
Hallo Fritz,
danke für die schnelle Antwort. Ich möchte die Anzahl in einem bestehenden Makro weiter verarbeiten, wie kann ich das mit deiner Function lösen? Muss ich für die Function ein neues Modul erstellen oder kann diese Function in mein bestehendes Makro integriert werden?
Kenn mich mit Funktionen leider nicht aus.
Gruß
Micha
Anzeige
AW: Schleife Text in Formel suchen
24.02.2018 14:35:38
Michael
Ok Danke,
und an welcher Stelle sage ich der Funktion in welchen Bereichen sie suchen soll?
Gruß
Micha
AW: Schleife Text in Formel suchen
24.02.2018 14:46:36
Fritz

Function checkInString(inBereich As Range, inSuchtest as String)
Dim numberOfResults%
Dim i%
Dim fieldText As String
fieldText = inBereich.Value
i = 1
Do
If InStr(i, fieldText, inSuchtest, vbTextCompare) > 0 Then
numberOfResults = numberOfResults + 1
i = InStr(i, fieldText, "T", vbTextCompare) + 1
End If
Loop Until (InStr(i, fieldText, "T", vbTextCompare) = 0)
checkInString = numberOfResults
End Function

Anzeige
AW: Alternativer Vorschlag
24.02.2018 15:07:57
Fennek
Hallo,
ein anderer Weg:

dim Anz as long
sub F_en()
Zaehlen(Sheets("Januar").Range("O7:U18))
Zaehlen(Sheets("Jan.Verdienst").Range("D6:P46"))
Zaehlen(Sheets("Voreinstellungen").Range("D7:I8"))
msgbox "Anzahl von 'Test': " & Anz
end sub
sub Zaehlen(rng as range)
for each c in rng
if instr(1, c.value, "Test") then Anz = Anz + 1
next c
end sub
mfg
(ungeprüft)
AW: Alternativer Vorschlag
25.02.2018 10:21:29
Michael
Hallo,
bin erst heute wieder dazu gekommen die Vorschläge zu prüfen.
@Fritz, deinen Code habe ich verändern können und er funktioniert bestens.
Function checkInString(inBereich As Range, Suchtext As String) As Long
Dim rng As Range
Dim numberOfResults%
Dim i%
Dim Text As String
For Each rng In inBereich
Text = rng.Formula
i = 1
Do
If InStr(i, Text, Suchtext, vbTextCompare) > 0 Then
numberOfResults = numberOfResults + 1
i = InStr(i, Text, Suchtext, vbTextCompare) + 1
End If
Loop Until (InStr(i, Text, Suchtext, vbTextCompare) = 0)
Next
checkInString = numberOfResults
End Function
@ Fennek, dein Code funktioniert auch, jedoch gibt er nicht die Anzahl des Textes zurück, sondern die Anzahl der Formeln, in denen der Text vorhanden ist.
Vielen Dank an euch.
Grüße
Micha
Anzeige

334 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige