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

step argumente 1 1 1 2 1 1 1 2

step argumente 1 1 1 2 1 1 1 2
21.01.2023 12:49:23
boris
Guten Tag liebe Leute
ich würde gerne eine Schleife laufen lassen mit unterschielich grossen steps. zb. for i 1 to 12 step 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1 ohne eine riesen if when sache daraus zu machen. Ist das möglich?
Vielen Dank und viele Grüsse Boris

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 12:59:28
onur
Und wozu das ganze überhaupt?
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 13:00:57
Nepumuk
Hallo Boris,
so geht das:
Public Sub Test()
    Dim lngIndex As Long
    For lngIndex = 1 To 12
        Debug.Print Choose(lngIndex, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1)
    Next
End Sub
Gruß
Nepumuk
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 14:20:55
Daniel
Hi
Wenn es Regelmäßig ist, könntest du die kleinste Schrittweite wählen und dann Steps überspringen
So was in der Art (bitte die passenden Werte für mod selbst ermitteln
For i = 1 to 12 step 1
    If i mod 5 = 4 then
    Else
        'Hier der Schleifencode
         Debug.Print i
    End if
Next
Bei unregelmäßigen Steps so:
Steps = Array(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1)
i = 1
s = 0
Do until i > 12
    'Hier der Schleifencode
     Debug.Print i
     i = i + Steps(s)
     s = s + 1
Loop
Gruß Daniel


Anzeige
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 16:53:26
boris
Hallo Daniel, die Methode hat funktioniert, mit bisschen rumprobieren :-)
Vielen Dank, Grüsse Boris
'Steps = Array(1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1)
'i = 1
's = 0
'Do until i 12
' 'Hier der Schleifencode
' Debug.Print i
' i = i + Steps(s)
' s = s + 1
'Loop
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 14:43:39
snb
I second @onur
Sub M_snb()
   c00 = "59"
   
   For j = 1 To 12
    If InStr(c00, j) Then j = j + 1
     c01 = c01 & " " & j
   Next
   
   MsgBox c01
End Sub

AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 15:00:46
boris
vielen Dank für alle Antworten. Ich werde alle mal probieren. Ich geb dann Bescheid. Viele Grüsse Boris
Anzeige
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 16:32:54
onur
Und warum nicht einfach so:
Public Sub Test()
    For i = 1 To 12
        ' Restcode
        If i = 5 Or i = 9 Then i = i + 1
    Next
End Sub

AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 22:23:18
snb
Und warum nicht einfacher so ?
Sub M_snb()
   MsgBox Join(Filter(Filter([transpose(row(1:12))], 5, 0), 9, 0))
End Sub

AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 22:27:32
onur
Wieso MsgBox? DAS war nicht die Aufgabe.
AW: step argumente 1 1 1 2 1 1 1 2
21.01.2023 19:17:23
Rudi
Hallo,
noch ne Möglichkeit:
Sub aaa()
  Dim s, r As Integer
  For Each s In Array(1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1)
    r = r + s
    Cells(r, 1) = "x"
  Next s
End Sub
Gruß
Rudi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige