Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlermeldung: Next ohne For

Forumthread: Fehlermeldung: Next ohne For

Fehlermeldung: Next ohne For
18.02.2004 16:16:38
Torsten K.
Hallo beisammen,
Roland Hochhäuser hat mir in den letzten Tagen geholfen, den nachfolgenden Code zuerstellen (der auch problemlos läuft):
Case Is = 110
For i = 4 To 1269
If Sheets("ACCOUNTS").Range("N" & i).Value - Sheets("CODCOSELE").Range("H7").Value = 0 _
And Sheets("ACCOUNTS").Range("E" & i).Value - Sheets("CODCOSELE").Range("E6").Value = 0 Then
Sheets("ACCOUNTS").Range("B" & i & ":G" & i).Copy _
Destination:=Sheets("CODCOSELE").Range("B" & J)
J = J + 1
End If
Next
Wenn ich aber eine Abfrage mit MsgBox einfüge um in Sheets("CODCOSELE").Range("E6") den Wert abzufragen, bleibt Excel mit der o.g. Fehlermeldung stehen und markiert das "Next" am Ende des Absatzes.
Case Is = 110
For i = 4 To 1269
If Sheets("CODCOSELE").Range("E6") = "" Then
If MsgBox("Bei CapCosts bitte ExpenseType auswählen!", vbOK) = vbOK Then
On Error Resume Next
Else
End If
If Sheets("ACCOUNTS").Range("N" & i).Value - Sheets("CODCOSELE").Range("H7").Value = 0 _
And Sheets("ACCOUNTS").Range("E" & i).Value - Sheets("CODCOSELE").Range("E6").Value = 0 Then
Sheets("ACCOUNTS").Range("B" & i & ":G" & i).Copy _
Destination:=Sheets("CODCOSELE").Range("B" & J)
J = J + 1
End If
Next
Was mache ich falsch?
Vielen Dank für Eure Hilfe.
Gruß
Torsten
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 16:22:41
Andreas Walter
Du hast ein "END IF" zu wenig
Aber wo es hinkommt ist mir nicht offensichtlich
Möglicherweise genau vor dem NEXT
AW: Fehlermeldung: Next ohne For
18.02.2004 16:29:35
Torsten K.
Hallo Andreas,
vielen dank für Deine Rückmeldung.
Ich habe Deinen Vorschlag umgesetzt und kann Dich jetzt aber nicht aus der Verantwortung entlassen ( :-) ). Ich habe wohl nunmehr eine Schleife im Programm, denn ich komme nicht mehr aus der MsgBox auf der Excel-Oberfläche raus. Wie kann ich das Programm abbrechen???
Gruß
Torsten
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 16:34:09
Torsten K.
Hallo Andreas,
ich herausgefunden, wie ich das Programm unterbrechen kann.
Nur fehlt mir halt immer noch die Lösung für mein eigentliches Problem.
Gruß
Torsten
AW: Fehlermeldung: Next ohne For
18.02.2004 16:40:46
Andreas Walter
Mir scheints Du kennst dich nicht so doll in vba aus
Aber leider wiess ich auch nicht was Du machen möchtest.
Du hast auf jedem Fall diese MSGBOX INNERHALB der Schleife
Daher wird die Frage genau 1266 mal gestellt.
Ein Versuch
Case Is = 110
If Sheets("CODCOSELE").Range("E6") = "" Then
MsgBox("Bei CapCosts bitte ExpenseType auswählen!")
else
For i = 4 To 1269
If Sheets("ACCOUNTS").Range("N" & i).Value - Sheets("CODCOSELE").Range("H7").Value = 0 _
And Sheets("ACCOUNTS").Range("E" & i).Value - Sheets("CODCOSELE").Range("E6").Value = 0 Then
Sheets("ACCOUNTS").Range("B" & i & ":G" & i).Copy _
Destination:=Sheets("CODCOSELE").Range("B" & J)
J = J + 1
End If
Next
end if
Aber schlag mich nicht, wenn das falsch ist
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 16:56:27
Torsten K.
Hallo Andreas,
zur Deiner 1. Aussage: In der Tat beschäftige ich mich erst seit einem halben Jahr mit VBA und sehe mich immer noch als Einsteiger (zumal ich mich als Controller nur eingeschränkt damit befassen kann).
Zu Deiner letzten Aussage: Ich haue niemanden, der mir helfen möchte :-).
Was ich machen möchte mit meiner Ergänzung: Ich möchte die Zelle "E6" vor dem weiteren Programmdurchlauf darauf prüfen, ob ein Wert drin steht, wenn ja, soll der Code weiterlaufen, wenn nein, soll die MsgBox erscheinen und das Programm (nach Klicken auf "ok") abbrechen.
Dein Vorschlag hat leider auch nicht die Lösung gebracht. Hast Du noch eine Idee?
Besten Dank vorab und
Gruß
Torsten
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 16:22:48
Jan P
Hallo Thorsten,
ich glaube folgende Zeile darf nicht in die For/Next-Schleife:
On Error Resume Next
Setze diese Zeile mal zwischen Case und For am Anfang des Codes....
Gruß Jan
AW: Fehlermeldung: Next ohne For
18.02.2004 16:59:58
Torsten K.
Hallo Jan,
auch Dir ein Dankeschön für Deine Rückmeldung.
Leider hat Dein Vorschlag mir auch nicht weitergeholfen.
Gruß
Torsten
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 17:04:18
Jan P
Ich sehe mich auch nicht als alwissend....
Es war nur ein nicht getesteter Vorschlag...
Du schreibst selbst, daß Du Dich als Controller leider nicht ausreichend mit VBA auseinandersetzen kannst - vielleicht solltest Du das aber mal tun, dann kannst Du vielleicht ja in Zukunft die ein oder andere von Dir gestellte Frage selbst beantworten...
Ich sitze hier auch nicht, weil ich dafür bezahlt werde, sondern, weil ich an dem geben und nehmen im Forum partizipieren möchte.
Und einen nicht funktioniernenden Vorschlag habe ich auch schon mal erhalten....
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 17:24:09
Torsten K.
Nochmals Hallo,
ich hab' den Eindruck, daß ich Dir auf den Schlips getreten habe mit meiner Antwort.
War nun wirklich nicht geplant, den Forumsteilnehmer zu ärgern, der bereit ist mir zu helfen.
Eins möchte ich aber doch noch loswerden: Ich muß Dir zwar nicht erläutern, warum ich im Berufsleben/Privatleben mich nicht noch mehr mit VBA beschäftigen kann, aber ich kann Dir versichern, daß ich sehr viel Spaß an VBA habe, daß es aber viele Dinge gibt, die ich noch nicht alleine auf die Beine stellen kann. Ich habe leider auch nicht die Zeit, im Büro oder Privat alles alleine auszuprobieren. Also lerne ich von Euch Besserwissenden (das ist positiv gemeint) an Hand von Euren Rückmeldungen. Vielleicht bin ich ja dann auch mal soweit, daß ich überwiegend Geber bin im Forum denn Nehmer.
Und das keiner von uns Forumsteilnehmern seine Brötchen mit der Beantwortung von Fragen verdient, ist mir auch klar.
Gruß
Torsten
Anzeige
AW: Fehlermeldung: Next ohne For
18.02.2004 18:22:10
Roland Hochhäuser
Hallo Torsten,
es ist schwierig, sich in einen Code hineinzudenken, der nur dann verstanden werden kann, wenn man die entsprechende Datei auch wirklich kennt. Die hattest du zwar zur Verfügung gestellt, aber in einem anderen umfangreichen Thread. Konsequenz: Die jetzigen Helfer hatten keine wirkliche Chance, dir zu helfen, weil sie das gewünschte Ergebnis nicht erahnen können, aber das siehst du ja selbst. Es wäre besser gewesen, du wärst im Thread geblieben.
Zur Frage:
Den Hinweis würde ich so platzieren, dass der Nutzer auch eine Chance zur Auswahl hat. Innerhalb des Makros ist dafür kein Raum, weil es Interaktionen nicht vorsieht. Du könntest allenfalls als erste Makrozeile schreiben:
If MsgBox("Ist bei CapCosts ein ExpenseType ausgewählt?", vbYesNo) = 7 Then Exit Sub
Bei "Nein" bricht das Makro ab und die Auswahl kann getroffen werden.
Gruß
Roland
Anzeige
AW: Fehlermeldung: Next ohne For
19.02.2004 09:14:01
Torsten K.
Hallo Roland,
Du bist ja wirklich ein fleißiger Helfer!
Ich sehe ein, daß es ohne entsprechende Datei schwer ist, sich in einen Code hereinzudenken. Den ursprünglichen Thread habe ich bewußt nicht mehr gewählt, weil ich der Meinung war, durch meinen letzten Eintrag den Thread geschlossen zu haben, denn die Problemstellung war ja gelöst. Na ja, wie man's macht, macht man's verkehrt :-).
Ich habe Deine Zeile in den Code eingefügt; wäre auch eine Lösung. Ich hab's gestern Abend noch mit folgender Funktion probiert, die eine MsgBox erzeugt, wenn bestimmte Zellen bestimmte Werte annehmen:
In einem Modul:

Function WARNING()
Call msgWARN
End Function


Sub msgWARN()
MsgBox "Bei CapCosts muß ein ExpenseType ausgewählt werden!"
End Sub

Und dann in die Formel in die Zelle:
=WENN(UND(C5=110;E6="");WARNING();"")
Ich habe allerdings noch ein paar Probleme mit dem Format. Da muß ich wohl noch dran feilen.
Also, vielen Dank für Deinen Tipp.
Bis bald und Gruß
Torsten
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Fehlermeldung: Next ohne For in VBA beheben


Schritt-für-Schritt-Anleitung

  1. Öffne den Visual Basic Editor in Excel (Alt + F11).
  2. Finde den betreffenden Code. Suche nach der For-Schleife, die du überprüfen möchtest.
  3. Überprüfe die Struktur deiner If-Anweisungen. Achte darauf, dass jede If-Anweisung ein passendes End If hat.
    If Bedingung Then
       ' Code
    End If
  4. Positioniere die MsgBox außerhalb der Schleife, wenn sie nicht wiederholt werden soll. Dies verhindert, dass die MsgBox mehrmals angezeigt wird.
    If Sheets("CODCOSELE").Range("E6") = "" Then
       MsgBox "Bitte ExpenseType auswählen!"
       Exit Sub
    End If
    For i = 4 To 1269
       ' Schleifen-Code
    Next i

Häufige Fehler und Lösungen

  • Fehler: Next ohne For: Dies tritt auf, wenn die For-Schleife nicht korrekt geöffnet wurde. Stelle sicher, dass jede For-Anweisung mit Next abgeschlossen wird.
  • Fehler in der MsgBox: Wenn die MsgBox innerhalb der Schleife steht, wird sie möglicherweise mehrfach angezeigt. Bewege sie vor die Schleife, um dies zu verhindern.

Alternative Methoden

Falls du weiterhin Probleme mit der Next ohne For-Fehlermeldung hast, kannst du folgende Alternativen ausprobieren:

  • Fehlerbehandlung aktivieren: Füge On Error Resume Next am Anfang deines Codes ein, um Laufzeitfehler vorübergehend zu ignorieren. Dies sollte jedoch mit Vorsicht verwendet werden.
  • Verwende die Debugging-Funktion: Setze Haltepunkte und schrittweise Ausführung, um den Fehler besser zu identifizieren.

Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie du die MsgBox effektiv nutzen kannst, ohne dass der Fehler Next ohne For auftritt:

Sub BeispielMakro()
    If Sheets("CODCOSELE").Range("E6") = "" Then
        MsgBox "Bitte ExpenseType auswählen!"
        Exit Sub
    End If

    For i = 4 To 1269
        If Sheets("ACCOUNTS").Range("N" & i).Value - Sheets("CODCOSELE").Range("H7").Value = 0 Then
            Sheets("ACCOUNTS").Range("B" & i & ":G" & i).Copy _
                Destination:=Sheets("CODCOSELE").Range("B" & J)
            J = J + 1
        End If
    Next i
End Sub

Tipps für Profis

  • Nutze den G&I-Speicher: Organisiere deine Variablen und Datenstrukturen effizient, damit dein Code leichter verständlich und wartbar bleibt.
  • Kommentiere deinen Code: Dies hilft nicht nur dir, sondern auch anderen, die deinen Code später lesen. Füge Kommentare hinzu, um die Logik hinter deinen Entscheidungen zu erklären.
  • Teste regelmäßig: Führe deinen Code in kleinen Abschnitten aus, um Fehler sofort zu identifizieren.

FAQ: Häufige Fragen

1. Was bedeutet Next ohne For?
Dies ist eine Fehlermeldung, die auftritt, wenn ein Next-Befehl ohne eine entsprechende For-Schleife verwendet wird.

2. Wie kann ich eine Schleife in VBA unterbrechen?
Du kannst Exit For verwenden, um die Schleife vorzeitig zu verlassen, oder eine Bedingung setzen, die die Schleife beendet.

3. Was ist der G&I-Speicher?
Der G&I-Speicher ist ein Konzept zur effizienten Speicherung und Verwaltung von Daten in Excel, um den Code übersichtlicher zu gestalten.

4. Wie kann ich mit MsgBox in VBA umgehen?
Verwende MsgBox, um Benutzereingaben zu erhalten oder um Informationen anzuzeigen, aber platziere sie strategisch, um wiederholte Aufrufe zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige