Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zählenwenn &

Forumthread: VBA Zählenwenn &

VBA Zählenwenn &
25.03.2006 02:42:26
Timonski
Servus
wollte gern per VBA was schreiben.. und zwar soll er mir aus einer Zelle mit dem Inhalt X1234512345 sagen wieviel 1, wieviel 2 ... wieviel 9 und wieviel 0 drin sind...
jeden wert natürlich in eine eigen spalte.. klar...
z.b. Spalte 1 X123450123
Spalte 2 Überschrift 1 = 2
Spalte 3 Überschrift 2 = 2
.
.
.
Spalte X Überschrift 9 = 0
Spalte X Überschrift 0 = 1
geht so was und wenn ja wie...
danke
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zählenwenn &
25.03.2006 04:13:26
Mustafa
Hallo Timonski,
Versuchs mal so:

Sub teilen()
Dim inti As Byte
Dim Wert As Byte
Dim Zelle As Range
Range("B2:K2").ClearContents
Set Zelle = Range("A1")
For inti = 1 To Len(Zelle)
If IsNumeric(Mid(Zelle, inti, 1)) = True Then
Wert = Mid(Zelle, inti, 1)
Select Case Wert
Case 1
Cells(2, 2).Value = Cells(2, 2).Value + 1
Case 2
Cells(2, 3).Value = Cells(2, 3).Value + 1
Case 3
Cells(2, 4).Value = Cells(2, 4).Value + 1
Case 4
Cells(2, 5).Value = Cells(2, 5).Value + 1
Case 5
Cells(2, 6).Value = Cells(2, 6).Value + 1
Case 6
Cells(2, 7).Value = Cells(2, 7).Value + 1
Case 7
Cells(2, 8).Value = Cells(2, 8).Value + 1
Case 8
Cells(2, 9).Value = Cells(2, 9).Value + 1
Case 9
Cells(2, 10).Value = Cells(2, 10).Value + 1
Case 0
Cells(2, 11).Value = Cells(2, 11).Value + 1
End Select
End If
Next
End Sub

Rückmeldung wäre nett.
Viele Grüße aus Köln.
Anzeige
'ne udFunktion wär' eleganter! - Gruß owT
25.03.2006 04:37:04
Luc:-?
:-?
Das kannst du ja übernehmen ;-)
25.03.2006 04:41:40
Mustafa
Bin selbst noch am lernen und habe den Code mit hilfe des ersten Threads von Timonski erstellt.
Eine udFunktion verlangt schon zu viel von mir ab.
Viele Grüße aus Köln.
AW: Das kannst du ja übernehmen ;-)
25.03.2006 12:12:45
Reinhard
Hi Mustafa,
Option Explicit
Sub teilen()
Dim inti As Byte, Zelle As Range, Wert As Integer
Range("B2:K2").ClearContents
Set Zelle = Range("A1")
For inti = 1 To Len(Zelle)
Wert = Mid(Zelle, inti, 1)
If IsNumeric(Wert) Then Cells(2, 1 + CInt(Wert) - 10 * (Wert = "0")).Value = Cells(2, 1 + CInt(Wert) - 10 * (Wert = "0")).Value + 1
Next inti
End Sub
Function zaehl(Zelle As Range, Ziffer As String) As Integer
Dim inti As Byte, Wert As String
For inti = 1 To Len(Zelle)
Wert = Mid(Zelle, inti, 1)
If Ziffer = Mid(Zelle, inti, 1) Then zaehl = zaehl + 1
Next inti
End Function

Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Das kannst du ja übernehmen ;-)
26.03.2006 23:02:17
Mustafa
Hallo Reinhard,
danke für die Funktion.
Könntest du mir die Zeile noch kurz erklären.
If IsNumeric(Wert) Then Cells(2, 1 + CInt(Wert) - 10 * (Wert = "0")).Value = Cells(2, 1 + CInt(Wert) - 10 * (Wert = "0")).Value + 1
Ausserdem ist in deiner Funktion eine überflüssige Zeile.

Function zaehl(Zelle As Range, Ziffer As String) As Integer
Dim inti As Byte, Wert As String
For inti = 1 To Len(Zelle)
Wert = Mid(Zelle, inti, 1)
If Ziffer = Mid(Zelle, inti, 1) Then zaehl = zaehl + 1
Next inti
End Function

Geht auch ohne die Zeile :
Wert = Mid(Zelle, inti, 1)
Oder wenn mit der Zeile dann so:
If Ziffer = Wert Then zaehl = zaehl + 1
Viele Grüße aus Köln.
Anzeige
AW: Das kannst du ja übernehmen ;-)
26.03.2006 23:21:04
Reinhard
Hi Mustafa,
mach mal
msgbox (1=1)*10
und
msgbox (1=123)*10
dann siehst du warum der Ausdruck
1 + CInt(Wert) - 10 * (Wert = "0")
bei Wert=0 11 ergibt
Gruß
Reinhard
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige