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

Countif wenn Textbox in Userform Zahlen enthält

Countif wenn Textbox in Userform Zahlen enthält
12.02.2016 13:05:54
Tom
Hallo zusammen.
Ich habe eine Tabelle in welcher in mehreren Spalten und etwa 100tsnd Zeilen
verschiedene Werte als Text, nur Zahlen oder Text mit Zahlen enthalten sind.
Bsp. für Einträge in Zellen der unterschiedlichen Spalten sind: 12345 oder 1234 oder abc1234def
Es gibt kein festes Schema oder Längen für die Einträge, sie können also beliebig variieren.
In einer schon bestehenden Userform die als Suchmaske fungiert,
soll in einer TextBox der Suchbegriff bzw. nur ein Teil eines Suchbegriffs eingegeben werden und es soll in einer weiteren TextBox die Anzahl der Zeilen eingetragen werden in denen der Suchwert existiert
zB. möchte ich nach dem Wert 234 suchen und als Ergebnis die Anzahl Zeilen im Tabellenblatt in denen dieser exakte Wert oder als Teil einer Zelle vorkommt.
Über CountIF komme ich hier nicht zum Ergebnis
TextBox10.Value = WorksheetFunction.CountIf(ActiveSheet.UsedRange, "*" & TextBox1.Value & "*")
Wer kann mir auf die Sprünge helfen?

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
CountIF hier ungünstig
12.02.2016 13:52:11
Daniel
Hi
CountIf ist aus mehreren Gründen hier ungeeignet:
1. Zählt CountIf jedes Vorkommen des Suchbegriffs, du willst aber nur die Zeilen zählen, dh wenn der Suchbegriff in einer Zeile 2x vorkommt ,willst du das nur 1x zählen, aber CountIf zählt 2x
2. müssen für die Zählweise "enhält" alle werte Texte sein, eine Zahl kann mit Zählenwenn nicht nach "enthält eine Ziffernfolge" ausgewertet werden.
probiers mal so:
With ActiveSheet.Usedrange
With .Columns(.columns.count + 1)
.FormulaR1C1 = "=(sumproduct(isnumber(search(""" & Textbox1.Text & """,RC1:RC[-1]))*1)> _
0)*1
Textbox10.Text = Worksheetfunction.Sum(.Cells)
.ClearContents
end with
End with
bei search brauchst du keine "*" am Anfang und Ende für "enhält"
du kannst statt serch auch find als Funktion in der Formel einsetzen, das ist etwas schneller, aber breücksichtigt auch die Gross-Kleinschreibung welche Search egal ist.
Gruß Daniel

Anzeige
AW: noch besser ist einfach
12.02.2016 14:10:10
Daniel
per Schleife durchzuzählen:

dim Zähler as Long
dim Z as Long, S as Long
dim arr
arr = ActiveSheet.Usedrange .Value
for Z = 1 to Ubound(arr, 1)
For S = 1 to Ubound(arr, 2)
If CStr(arr(Z, S)) like "*" & Textbox1.Text & "*" Then
Zähler = Zähler + 1
Exit For
end If
Next
next
textbox10.Text = Zähler
Gruß Daniel

AW: noch besser ist einfach
12.02.2016 17:17:05
Tom
DANKE
Das war es was ich gesucht habe!
Läuft einwandfrei.

370 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige