online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Frohny vom 18.06.2021, 17:08 Options

For-Schleife mit mehreren Bedingungen

Hallo ihr Profis..:-)

ich hab zwei For schleifen:
For i = 5 To 10

For spalte = 4 To 300

Next spalte
Next i

ist es irgendwie möglich, dass ich wenn i = 5 einen anderen anfangs und endwert für "spalte" definieren kann und bei i 6, 7, 8 usw. jeweils andere..??

also wenn i = 5 dann spalte 4 to 40, wenn i = 6 spalte 50 to 90 usw.

danke für eure Hilfe

Grüße


Antwort schreiben

Antwort 1 von Primut vom 18.06.2021, 17:19 Options

Einfach ein Array mit den Werten für den Anfangswert und den Endwert festlegen und dann mittels Anfangswert(i) bzw. Endwert(i) einsetzen bzw. abrufen.
Wichtig zu wissen: die Arrays zählen immer bei 0 los, also entsprechend das i korrigieren.

Gruß
    Primut

Antwort 2 von Frohny vom 18.06.2021, 17:32 Options

Danke Primut,

klingt einfach, aber da ich noch nie mit arrays gearbeitet habe, ist es für mich nicht so leicht..

wie müsste es denn in dem fall ausschauen???

wenn es heißen soll

wenn i = 5 dann spalte 4 bis 40
wenn i = 6 dann spalte 50 bis 100
wenn i = 7 dann spalte 105 bis 196
??

danke für die Hilfe.. :-)

Antwort 3 von rainberg vom 18.06.2021, 17:51 Options

Hallo Frohny,

vielleicht hilft Dir auch dieser Ansatz

Option Explicit

Sub schleife()
    Dim intI As Integer, intSpalte As Integer
    Dim intStart As Integer, intZiel As Integer
    For intI = 1 To 5
        Select Case intI
            Case Is = 5
                intStart = 4
                intZiel = 40
            Case Is = 6
                intStart = 50
                intZiel = 100
            Case Is = 7
                intStart = 105
                intZiel = 196
            Case Is = 8
                intStart = 200
                intZiel = 300
            Case Is = 9
                intStart = 301
                intZiel = 400
            Case Is = 10
                intStart = 401
                intZiel = 500
        End Select
        For intSpalte = intStart To intZiel
        
            '......Befehle
        
        Next
    Next
End Sub


Gruß
Rainer

Antwort 4 von Primut vom 18.06.2021, 21:49 Options

Ja,
Rainer hat zwar Recht,
allerdings ist es programmiertechnisch wesentlich eleganter, mit Arrays zu arbeiten.
Beispiel ( mit 3 Elementen)

Dim Anfangswert As Variant
Dim Endwert As Variant
Dim i, a, spalte As Integer

Anfangswert = Array(4, 50, 105)
Endwert = Array(40, 100, 196)

For i = 5 To 7
For spalte = Anfangswert(i - 5) To Endwert(i - 5)
...
Next spalte
Next i

End Sub


Du müsstest es halt noch auf deine komplette Werte-Liste anpassen.
Hierbei handelt es sich um ein statisches Array, prinzipiell kannst du die Werte auch einzeln per Zuweisung zuordnen.
Das erste Array-Element beginnt mit 0 an zu zählen, deshalb habe ich i-5 gesetzt, funktioniert dann natürlich nur bei einfachem For-Step.
In deinem Fall hätten die Array dann halt von 5 - 10 = 6 Elemente, d.h. Array(0) bis Array(5), musst du halt erweitern und aufpassen, dass du die Elemente nicht vertauschst.

Gruß
    Primut

Antwort 5 von nighty vom 18.06.2021, 22:14 Options

hi all :-)

noch eine variante :-))

gruss nighty

Sub Schleife()
Dim Bereiche As Range
Dim zelle As Range
Set Bereiche = Application.Union(Range("A2:A3"), Range("B3:B5"), Range("C3:E3"))
For Each zelle In Bereiche
Cells(zelle.Row, zelle.Column) = "hallihallo"
Next zelle
End Sub

Ähnliche Themen

Summewenn und Zählenwenn mit mehreren Kriterien mit Excel
JoeKe  17.05.2009 - 22590 Hits - 1 Antwort

Rangliste mit Bezug auf mehreren Spalten und einer Bedingungen
Can23A  21.04.2008 - 72 Hits - 1 Antwort

VBA+For Schleife
Gast00001  04.09.2008 - 30 Hits - 3 Antworten

For Schleife mit Unterbrechungen
Berni333  15.09.2008 - 6 Hits - 5 Antworten

for next schleife
wmei  28.04.2009 - 237 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026