For Schleife mit Unterbrechungen
Guten Tag zusammen
ich benutze eine For Schleife um alle Zeilen einer Tabelle abzuarbeiten. d.h. es kommt eine Berechnung die Zell wird mit dem Wert gefüllt und dann wird weiter in die nächste Zeile gesprungen. Dies geschieht solange bis das Tabellenende erreicht ist. Jetzt will ich aber dass z.b in Zeiel 8-12 nichts passiert weil das nur leer Zeilen sind. Kann ich die For Schleife auch so laufen lassen dass For i=1 to 7 for i=13 to 200
sprich der Breich von 8 bis 12 wird ausgenommen.
über eine Antwort wäre ich sehr dankbar.
Gruß
Bernhard
Antwort schreiben
Antwort 1 von hrhr vom 15.09.2020, 11:23 Options
hallo,
also muss gestehn, hab für excel noch nit wirklich was geschrieben, allgemein würde man es aber mit ner if machen - also wenn es fix ist das 8 - 12 nix steht kannst z.b. sagen:
if i >=8 && i <=12 then *leere anweisung*
else *deine berechnung*
wenns dynamisch wäre könntest halt sowas machen wie
if value.at(i) != null then *deine berechnung*
else *leere anweisung*
die syntax ist natürlich stark pseudo code, aber die herrangehnsweise sollte wohl klar werden :)
lg hrhr
Antwort 2 von Berni333 vom 15.09.2020, 12:43 Options
Hi danke funktioniert bei mir aber nicht richtig
For i = 8 To 275
If Value.at(i) = " " Then
If Cells(5, 25).Value = "Januar" Then
Cells(i, 24).Value = Cells(i, 7).Value - Cells(i, 23).Value
ElseIf Cells(5, 25).Value = "Februar" Then
Cells(i, 24).Value = Cells(i, 8).Value - Cells(i, 23).Value
...
end if
end if
next i
so sieht ein Teil meines Codes aus. was müsste ich ändern das es auch klappt?
Danke
Gruß
Bernhard
Antwort 3 von DaPascha vom 15.09.2020, 12:54 Options
So wie ich den Code interpretiere werden die ganzen If-
Anweisungen nur dann ausgeführt, wenn:
If Value.at(i) = "
" Then
eintrifft. Was ja nicht Sinn der Sache ist. Ich würde
die erste If-Anweisung wie folgt ändern:
If Value.at(i) != " "
Then
Also, wenn Value.at(i) nicht leer ist, dann der Wert ermitteln
usw...
Übrigens wenn du nach " " abfragst, dann fragst du nach einem
Leerzeichen ab, "" hingegen bedeutet nichts.
MfG DaPascha
Antwort 4 von Teerbaby vom 15.09.2020, 13:05 Options
ich würde das so machen:
for i=8 to 275
if i<8 and i>12 then
select case cells(5,25).value
case "Januar"
Cells(i, 24).Value = Cells(i, 7).Value - Cells(i, 23).Value
case "Februar"
...
End Select
End If
Next
Antwort 5 von Berni333 vom 15.09.2020, 13:56 Options
vielen Dank für die schnellen Antworten. Jetzt klappts auch bei mir.
Vielen Dank & viele Grüße
Bernhard