Excel Marko, Zahlenreihe

Gast #5409638
Lesenswert?

Hallo Leute,

ich habe eine Frage zum Excel Makro, wovon ich nicht viel Ahnung habe.

Ich möchte ein Makro schreiben, welches aus Nullen und Einsel eine Folge 
herausliest. z.B.: 0000000000111101111100000000000

Ich möchte mit dem Makro bestimmen, wie viele Folgen von einsen 
existieren und wie lang diese jeweils sind. z.B: es gibt 3 folgen von 
einsen, diese sind jeweils 111 , 111111, 11111. Das Programm soll mir 
sagen:
Folgen : 3 , längste Folge: 6

Jede Zelle enthält dabei eine 1 oder 0 und ist ein Reihe B gespeichert.

Was schreibe ich in das Marko?
Kann mir jemand weiterhelfen?
Gast #5409691
Lesenswert?

ich habe statt dem Makro noch eine andere Möglichkeit gefunden:
=WENN(B1="1";ZEILE()-MAX(($B$1:B="0")*(ZEILE($B$1:B1)))+1;WENN(B1="0";ZE 
ILE()-MAX(($B$1:B1="1")*(ZEILE($B$1:B1)))+1;""))


als matrix.

Funktioniert aber noch nicht, wo liegt der Fehler?
#5409777
Lesenswert?

Hallo Sven,

sven schrieb:
> Hallo Leute,
>
> ich habe eine Frage zum Excel Makro, wovon ich nicht viel Ahnung habe.
>
> Ich möchte ein Makro schreiben, welches aus Nullen und Einsel eine Folge
> herausliest. z.B.: 0000000000111101111100000000000
>
> Ich möchte mit dem Makro bestimmen, wie viele Folgen von einsen
> existieren und wie lang diese jeweils sind. z.B: es gibt 3 folgen von
> einsen, diese sind jeweils 111 , 111111, 11111. Das Programm soll mir
> sagen:
> Folgen : 3 , längste Folge: 6

Dein Beispiel passt nicht zu Du der langen Zeichenkette oben.
Ist das Absicht?

>
> Jede Zelle enthält dabei eine 1 oder 0 und ist ein Reihe B gespeichert.

Dieser Satz ist leider komplett unverständlich.

> Was schreibe ich in das Marko?

Dem Marko die Haut aufschneiden und dann mit Edding drübergehen.

> Kann mir jemand weiterhelfen?#

Wenn Du Dir etwas Mühe gibst, und Dich verständlicher ausdrückst, gerne.
Gast #5409797
Lesenswert?

Makro schreiben ist im Prinzip trial and error. Das musst du selbst 
schreiben. Du brauchst im Prinzip eine (for-)Schleife, die bestimmte 
Zellen abläuft und genau das macht, was du vorgibts. Fang einfach an und 
stell hier mal code ein, dann kann man dir weiterhelfen.
Gast #5409836
Lesenswert?

Neues Modul in VBA-Projekt einfügen oder in ein vorhandenes:
1
Public Function FolgenGeben(strZahl As String) As String
2
    Dim i As Long
3
    Dim char As String
4
    Dim Folgen As Integer
5
    Dim LängsteFolge As Integer
6
    Dim iFolgen As Integer
7
    Dim iLängsteFolge As Integer
8
    
9
    For i = 1 To Len(strZahl)
10
        char = Mid$(strZahl, i, 1)
11
        If char = "1" Then
12
            If iLängsteFolge = 0 Then Folgen = Folgen + 1
13
            iLängsteFolge = iLängsteFolge + 1
14
        Else
15
            If iLängsteFolge > LängsteFolge Then LängsteFolge = iLängsteFolge
16
            iLängsteFolge = 0
17
        End If
18
    Next
19
    
20
    FolgenGeben = "Folgen: " & Folgen & ", längste Folge: " & LängsteFolge
21
End Function

danach in irgendeiner Zelle neue benutzerdefinierter Formel schreiben:
=FolgenGeben(B1)

in B1 soll der String stehen mit "111000111000" formatiert als Text 
sonst wird nicht richtig gezählt.

Rest ist glaube ich selbstverständlich.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren