Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: For Schleife mit einer Variablen

For Schleife mit einer Variablen
27.03.2017 17:56:48
Peter
Liebe Experten,
besteht die Möglichkeit eine For -Next Schleife mit einer Variablen zu formulieren?

n=5
z=0
for i=n+z to 100
z=0
for j=1 to 10
if cells(i,3)=test then
z=z+1
else
end if
Exit for
next j
next i

Wenn z=7 dann soll die Schleife nicht mit dem Wert 5 sondern ab cells(12,3) durchlaufen.
Wie könnte man so etwas lösen?
LG, Peter
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: For Schleife mit einer Variablen
27.03.2017 17:58:23
Hajo_Zi
Du setzt Z zu Beginn der Schleife auf 0 warum?
setze vor for auf 7

AW: For Schleife mit einer Variablen
28.03.2017 03:30:56
Rainer
Hallo Peter,
Kannst du es etwas besser beschreiben?
Welche der beiden Schleifen soll sich ändern?
Woher kommt der Wert "5"?
Gruß,
Rainer
Zeilen einfärben
28.03.2017 15:07:17
Peter
Hallo Zusammen,
danke erstmal für Eure Antworten. Habe die Aufgabenstallung wie folgt gelöst.
Sub Zell_Einfärben()
Dim Zeilenzahl As Integer
Dim i As Integer
Dim x As Boolean
Dim farbe1 As Boolean
Dim farbe2 As Boolean
lz = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row     'letzte Zeile bestimmen
ls = Cells(8, Columns.Count).End(xlToLeft).Column     'letzte Spalte
Zeilenzahl = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
farbe1 = True
farbe2 = False
For i = 9 To Zeilenzahl
x = False
If Range("C" & i)  Range("C" & i - 1) Then x = True
If x = True Then
If farbe1 = True Then
farbe1 = False
farbe2 = True
Else
farbe1 = True
farbe2 = False
End If
End If
If farbe1 = True Then
'Rows(i).Interior.ColorIndex = 15
Range(Cells(i, 2), Cells(i, ls)).Select
With Selection.Interior
.ThemeColor = xlThemeColorAccent4
.TintAndShade = 0.799981688894314
End With
End If
If farbe2 = True Then
'Rows(i).Interior.ColorIndex = 2
Range(Cells(i, 2), Cells(i, ls)).Select
With Selection.Interior
.ThemeColor = xlThemeColorDark1
.TintAndShade = -4.99893185216834E-02
End With
End If
Next i
End Sub
Gruß, Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

For Schleife mit einer Variablen in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und aktiviere den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Erstelle ein neues Modul:

    • Klicke im Projekt-Explorer mit der rechten Maustaste auf dein Projekt und wähle Einfügen > Modul.
  3. Füge den Code ein:

    • Kopiere den folgenden Code in das Modul:
    Sub ForSchleifeMitVariablen()
       Dim n As Integer
       Dim z As Integer
       n = 5
       z = 7 ' Setze z auf 7, um die Schleife ab cells(12,3) zu starten
       For i = n + z To 100
           For j = 1 To 10
               If Cells(i, 3) = "test" Then
                   z = z + 1
               Else
                   Exit For
               End If
           Next j
       Next i
    End Sub
  4. Führe das Makro aus:

    • Drücke F5, um das Makro auszuführen.

Häufige Fehler und Lösungen

  • Problem: Die Schleife startet nicht wie gewünscht.

    • Lösung: Stelle sicher, dass z vor der Schleife korrekt gesetzt ist. Im Beispiel wird z auf 7 gesetzt.
  • Problem: Die Schleife läuft unendlich.

    • Lösung: Überprüfe die Bedingung in der If-Anweisung. Ein falscher Vergleich kann die Schleife in einem ungewünschten Zustand halten.

Alternative Methoden

Falls die For Schleife nicht die gewünschten Ergebnisse liefert, kannst du auch eine Do While-Schleife in VBA verwenden:

Sub DoWhileSchleife()
    Dim i As Integer
    i = 5
    Do While i <= 100
        ' Deine Logik hier
        i = i + 1
    Loop
End Sub

Diese Methode bietet mehr Flexibilität bei der Steuerung der Schleifenbedingungen.


Praktische Beispiele

Hier ist ein Beispiel, wie du die For Schleife nutzen kannst, um Zellen einzufärben:

Sub ZellEinfärben()
    Dim Zeilenzahl As Integer
    Dim i As Integer
    Dim ls As Integer
    Zeilenzahl = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
    ls = Cells(8, Columns.Count).End(xlToLeft).Column

    For i = 9 To Zeilenzahl
        If Cells(i, 3).Value <> Cells(i - 1, 3).Value Then
            Cells(i, 2).Resize(1, ls).Interior.ThemeColor = xlThemeColorAccent4
        End If
    Next i
End Sub

Tipps für Profis

  • Nutze die Debug.Print-Anweisung, um Werte während der Ausführung der Schleife zu überprüfen.
  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Experimentiere mit Schleifen in verschiedenen Programmiersprachen, wie der for schleife in c, um ein besseres Verständnis für ihre Funktionsweise zu bekommen.

FAQ: Häufige Fragen

1. Kann ich die For Schleife auch in anderen Programmiersprachen verwenden?
Ja, die for schleife in c hat eine ähnliche Struktur, jedoch variieren die Syntax und die Verwendung in anderen Programmiersprachen.

2. Wie kann ich die Schleife unterbrechen?
Verwende die Exit For Anweisung, um die Schleife vorzeitig zu beenden, wenn eine bestimmte Bedingung erfüllt ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige