Microsoft Excel

Herbers Excel/VBA-Archiv

Ist das möglich? (zählen von Ketten)

Betrifft: Ist das möglich? (zählen von Ketten)
von: Steve
Geschrieben am: 17.04.2003 - 09:29:53

Hallo zusammen,

ich habe folgendes Problem: Von C2 bis Z2 stehen pro Zelle entweder eine Zahl oder ein Buchstabe. Nun will ich nicht nur die Anzahl der vorhandenen "Z" zählen sondern als Ergebnis brauche ich die Anzahl an "Z-Ketten"

zB. Inhalt beginnend bei (C2): 9 - (D2):A -(usw):3 - Z - Z - Z - A - Z - 4 - 8 - Z - Z - 9 - W - Z - 5

Als Ergebnis bräuchte ich dann 7 mal "Z" allerdings nicht als Gesamtergebnis sonder aufgeteilt in die Anzahl der hintereinander folgenden "Z"; also 1 mal 3Z; 1 mal 2Z; 2 mal 1Z

Ich hoffe ich habe mich verständlich gemacht.

Vielen Dank
Steve


  

Re: Ist das möglich? (zählen von Ketten)
von: Knut
Geschrieben am: 17.04.2003 - 09:33:10

Wo und wie soll denn die Ausgabe des Ergebnisses erfolgen?
Knut

  

Re: Ist das möglich? (zählen von Ketten)
von: Nike
Geschrieben am: 17.04.2003 - 09:43:01

Hi,
wo sollen den dann die Auswertungen stehen?
Wenn z.B. in C2 das hier steht:
3 - Z - Z - Z - A - Z - 4 - 8 - Z - Z - 9 - W - Z - 5
soll dann in C3 1, in C4 1 und in C5 eine 2
stehen, jeweils die Anzahl für das Auftreten oder wie?

Bye

Nike

  

weitere Erklärungen
von: Steve
Geschrieben am: 17.04.2003 - 09:52:07

also pro Zelle steht nur ein Wert

C2 hat den Wert 3
D2 hat den Wert Z
E2 hat den Wert Z
usw...
Betrachtet werden soll der Bereich zwischen (C2:Z2)
Das Ergebnis kann dahinter stehen: ZB das Ergebnis aller "Einer Z Ketten" in AA2. Das Ergebnis aller "Zweiter Z Ketten" in AB2 usw..
Wobei mir eigentlich egal ist, wo das Ergebnis steht.

Vielen Dank schonmal

  

Re: weitere Erklärungen
von: L.Vira
Geschrieben am: 17.04.2003 - 17:31:53

Verstanden hab ichs nicht, aber ggf. hilft dir das:

Option Explicit
Sub Anzahl__Z()
Const dummy As String = "X"
Const W2F As String = "Z"
Dim i As Integer, c As Integer, a As Integer, y As Integer
Dim Z As String
Z = ActiveCell.Value
Z = Z & dummy
For i = 1 To Len(Z)
If Mid(Z, i, 1) = W2F And _
Mid(Z, i + 1, 1) = W2F Then
y = i
a = a + 1
While Mid(Z, y, 1) = Mid(Z, i, 1)
c = c + 1
y = y + 1
Wend
Cells(a, 1) = c
Cells(a, 2) = y
i = y
c = 0
ElseIf Mid(Z, i, 1) = W2F Then
a = a + 1
Cells(a, 1) = 1
Cells(a, 2) = i
End If
Next
End Sub


  

Re: weitere Erklärungen
von: L.Vira
Geschrieben am: 17.04.2003 - 17:31:54

Verstanden hab ichs nicht, aber ggf. hilft dir das:

Option Explicit
Sub Anzahl__Z()
Const dummy As String = "X"
Const W2F As String = "Z"
Dim i As Integer, c As Integer, a As Integer, y As Integer
Dim Z As String
Z = ActiveCell.Value
Z = Z & dummy
For i = 1 To Len(Z)
If Mid(Z, i, 1) = W2F And _
Mid(Z, i + 1, 1) = W2F Then
y = i
a = a + 1
While Mid(Z, y, 1) = Mid(Z, i, 1)
c = c + 1
y = y + 1
Wend
Cells(a, 1) = c
Cells(a, 2) = y
i = y
c = 0
ElseIf Mid(Z, i, 1) = W2F Then
a = a + 1
Cells(a, 1) = 1
Cells(a, 2) = i
End If
Next
End Sub