Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.04.2025 14:56:21
29.04.2025 13:03:33
29.04.2025 11:32:32
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

codezeilen überspringen

Forumthread: codezeilen überspringen

codezeilen überspringen
19.08.2002 08:33:39
richard
morgen forum!

gibt es eine möglichkeit folgenden sachverhalt in vba zu übersetzen? wenn "bedingung" dann tue das ( mit if ...then....) ansonsten (else fahre fort mit programmzeile x)

fahre fort mit programmzeile x. darum gehts. wie kann ich das vba beibringen. falls gewisse bedingung nicht erfüllt, soll er einen code-teil überspringen.

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: codezeilen überspringen
19.08.2002 08:36:24
Hajo_Zi
Hallo Richard

war das ernst gemeint. Die Lösung steckt doc schon in Deiner Frage

If Range)("A1")="A" Then
' führe diese Anweisungen aus
else
' ansonsten diese Anweisungen
End if

oder lese ich da was falsch.

Gruß Hajo

Re: codezeilen überspringen
19.08.2002 08:49:51
richard
diese lösung fände ich aber nicht so schick, da ich sonst einen sehr langen code doppelt auführen muß. ich dachte man könnte irgendwie codezeilen überspringen.
mfg richi
Anzeige
Re: codezeilen überspringen
19.08.2002 08:53:08
Hajo_Zi
Hallo Richard

das verstehe ich nicht. Da müßtest Du Dein Promblem schon mal genauer Erklären. Vielleich auch mt Deinem schon vorhandenen Code.

Gruß Hajo

Re: codezeilen überspringen
19.08.2002 09:00:02
Andreaas
Hallo,

auch wenn das nicht die feine Art zu programmieren ist (Übersichtlichkeit etc.), geht es mit Goto Sprungmarke.

Dann macht VBA mit der nächsten Code-Zeile nach dem Wort
"Sprungmarke:"
weiter.
(Sprungmarke kann natürlich ein beliebiges Wort sein)

Gruss

Andreas

Anzeige
Re: codezeilen überspringen
19.08.2002 09:26:29
richard
diese lösung fände ich aber nicht so schick, da ich sonst einen sehr langen code doppelt auführen muß. ich dachte man könnte irgendwie codezeilen überspringen.
mfg richi
Re: codezeilen überspringen
19.08.2002 09:32:59
richard
das ist das was ich gesucht habe.
ich muß gestehen ich wollte mich dieser krücke behelfen weil mir die formulierung des
else.falles nicht einfalle wollte.
habe jetzt aber doch einen gefunden. danke trotzdem.

um euch nicht im dunkeln zu lassen. es ging um folgendes.
wenn ein autofoliter aktiv, dann filterkriterium auslesen. dieses filterkriterium verarbeite ich weiter und setze es später wieder ein. wenn der filter aber nicht an ist (else) ja was dann. dann war filterkriterium="" und somit konnte ich damit den filter nicht wieder aktivieren. jetzt ist das filterkriterium im else fall "*" (also alles).
ich weiß hätte ich auch eher drauf kommen können aber ihr wißt ja wie das mit den bretche vorm kopf manchmal ist.

hier der code

Private Sub Alles_Drucken_Click()

Dim Filterkriterium As String
Dim i As Integer


With ActiveSheet.AutoFilter.Filters(1)
If .On Then
Filterkriterium = (.Criteria1)
Else: Filterkriterium = "*"
End If
End With

ActiveSheet.Range("A1").Select
Selection.AutoFilter Field:=1
ActiveSheet.Range("A1").Select

i = Range("A65536").End(xlUp).Row

ActiveSheet.Range("A1").Select
Selection.AutoFilter Field:=1, Criteria1:=("=" & (Right(Filterkriterium, 8))), Operator:=xlAnd
ActiveSheet.Range("A1").Select


Application.ScreenUpdating = False

Call DruckerInit

With Worksheets("Task-Liste").PageSetup
For n = 0 To 9
On Error Resume Next
Application.ActivePrinter = "\\P100067\D4069995h auf NE0" + CStr(n) + ":" 'Laser
'Application.ActivePrinter = "\\P100067\D4080198P auf NE0" + CStr(n) + ":" 'Farbdrucker
Next n
.Orientation = xlLandscape
End With

Worksheets("Task-Liste").Range(Cells(3, 1), Cells(i + 1, 9)).PrintOut 'ausdrucken

Application.ScreenUpdating = True

End Sub

mfg richi

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Codezeilen in VBA überspringen


Schritt-für-Schritt-Anleitung

Um in VBA bestimmte Codezeilen zu überspringen, nutzt Du die If ... Then ... Else-Struktur. Hier ist ein einfaches Beispiel:

If Range("A1") = "A" Then
    ' Führe diese Anweisungen aus
Else
    ' Überspringe zu dieser Codezeile
    GoTo NächsteZeile
End If

NächsteZeile:
' Hier geht das Programm weiter

Wenn die Bedingung nicht erfüllt ist, springt das Programm direkt zur NächsteZeile. Diese Methode ermöglicht es, ganze Codeabschnitte zu überspringen, wenn die Bedingung nicht erfüllt ist.


Häufige Fehler und Lösungen

  1. Fehler: Ungeordnete Sprünge

    • Wenn Du GoTo verwendest, achte darauf, dass die Sprungmarke klar definiert ist. Ansonsten kann der Code unübersichtlich werden. Vermeide es, zu oft zu springen.
  2. Fehler: Falsche Bedingungen

    • Stelle sicher, dass die Bedingungen korrekt formuliert sind. Ein häufiges Problem ist, dass die Bedingungen nicht den gewünschten Wert überprüfen.

Alternative Methoden

Eine weitere Möglichkeit, Codezeilen in Excel VBA zu überspringen, ist die Verwendung von Fehlerbehandlungsroutinen. Hierbei kannst Du den Befehl On Error Resume Next nutzen:

On Error Resume Next
' Code, der einen Fehler verursachen könnte
If Err.Number <> 0 Then
    ' Fehler aufgetreten, fahre fort
    Err.Clear ' Fehler zurücksetzen
End If

Diese Methode ist besonders nützlich, wenn Du mit potenziellen Fehlern arbeitest, die nicht unbedingt den gesamten Code beeinträchtigen sollten.


Praktische Beispiele

Hier ist ein praktisches Beispiel, das zeigt, wie Du mit einem Autofilter in Excel VBA umgehst und dabei bestimmte Codezeilen überspringst:

Private Sub Alles_Drucken_Click()
    Dim Filterkriterium As String
    With ActiveSheet.AutoFilter.Filters(1)
        If .On Then
            Filterkriterium = .Criteria1
        Else
            Filterkriterium = "*"
        End If
    End With

    ' Bereite den Druck vor
    Application.ScreenUpdating = False
    ' Weitere Druck-Logik hier...
    Application.ScreenUpdating = True
End Sub

In diesem Beispiel wird überprüft, ob der Autofilter aktiv ist. Wenn nicht, wird das Filterkriterium auf "*" gesetzt, was bedeutet, dass alle Zeilen angezeigt werden.


Tipps für Profis

  • Verwende klare Sprungmarken: Wenn Du GoTo einsetzt, benenne Deine Sprungmarken eindeutig, um die Lesbarkeit zu verbessern und um Verwirrungen zu vermeiden.
  • Fehlerbehandlung: Nutze On Error Resume Next mit Bedacht, um sicherzustellen, dass Du nicht wichtige Fehler ignorierst. Eine strukturierte Fehlerbehandlung macht Deinen Code robuster.
  • Code kommentieren: Halte Deinen Code übersichtlich und kommentiere komplexe Logik, sodass Du und andere wissen, was an bestimmten Stellen passiert.

FAQ: Häufige Fragen

1. Wie kann ich in Excel VBA eine Zeile überspringen, wenn eine Bedingung nicht erfüllt ist?
Du kannst dies mit einer If ... Then ... Else-Anweisung erreichen und die GoTo-Anweisung verwenden, um zu einer bestimmten Codezeile zu springen.

2. Was ist der Unterschied zwischen On Error Resume Next und If ... Then ... Else?
On Error Resume Next ignoriert Fehler und setzt die Ausführung fort, während If ... Then ... Else dazu dient, bestimmte Codeabschnitte basierend auf Bedingungen zu steuern.

3. Kann ich mehrere Codezeilen überspringen?
Ja, Du kannst mehrere Codezeilen überspringen, indem Du die Sprungmarke entsprechend positionierst oder die Logik innerhalb einer Schleife anpasst.

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