Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

For Schleife mit Unterbrechungen





Frage

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 1 von hrhr

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

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

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

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

vielen Dank für die schnellen Antworten. Jetzt klappts auch bei mir.
Vielen Dank & viele Grüße
Bernhard

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: