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

Wie zu einer bestimmten Makrozeile Springen

Forumthread: Wie zu einer bestimmten Makrozeile Springen

Wie zu einer bestimmten Makrozeile Springen
09.05.2003 13:40:19
Rolf
Hallo Leute,

Folgendes Problem:

Sub Makro()
Range ("A1").Select
If ActiveCell=1 then
...
Else:
...

Nun möchte ich, dass ich in meinem Makro sage:

if Activecell=0 then goto [in die Zeile oben, die heisst:"Range ("A1").Select]in meinem Makro!

Sprich: Ist die if...then abfrage =true, dann springe im Makro hoch auf die Zeile und führe die Anweisungen wieder aus...

Ich hoffe ,dass ich es so klar beschrieben habe, wie möglich ;-)

Gruss und Danke!

Rolf

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Wie zu einer bestimmten Makrozeile Springen
09.05.2003 13:42:27
Mike E.

Hallo Rolf,

du könntest den Folgecode in einem weiteren Sub unterbringen und sodann sagen:

If Bedingung1 Then Call MeinNeuesSub

Viele Grüße
Mike

Re: Wie zu einer bestimmten Makrozeile Springen
09.05.2003 13:44:22
Andi_H

Hi Rolf,

geht mit goto

If activecell = o then goto test:

jetzt mußt du ´nur noch ne Sprungmarke an die stelle setzen wo dein code hinspringen soll. In diesem Fall wäre es
test:

gruß


Anzeige
Re: Wie zu einer bestimmten Makrozeile Springen
09.05.2003 13:45:55
Mike E.

Hallo rolf,

ander sollte es auch so gehen:

If Bedingung1 Then GoTo NächsterSchritt

CodeTextSoundSo
CodeTextSoUndSo

NächsterSchritt:

AnweisungSoUndSo

End Sub

Viele Grüße
Mike

Re: Wie zu einer bestimmten Makrozeile Springen
09.05.2003 15:42:49
PeterW

Hallo Rolf,

beschreib Dein Problem doch mal etwas genauer, was soll das Makro leisten? Zwar sind Sprungmarken prinzipiell möglich aber sie werden Dich auf Dauer unglücklich machen - Du wirst Dich in Deinem eigenen Code nicht mehr auskennen!

Es läßt sich bestimmt ein Weg finden, auf die Sprünge zu verzichten.

Gruß
Peter

Anzeige
Re: Danke trodsdem, Peter...
09.05.2003 15:45:19
Rolf

Hi Peter,

Im Code habe ich mich auf eine Sprungmarke begrenzt. Inzwischen funktioniert der Code so, wie ich es möchte! Ich bedanke mich trodsdem für deine Antwort:-)

Rolf

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zu einer bestimmten Makrozeile springen in Excel


Schritt-für-Schritt-Anleitung

Um in einem Excel-Makro zu einer bestimmten Zeile zu springen, kannst du die GoTo-Anweisung verwenden. Hier ist eine einfache Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Erstelle ein neues Makro: Füge ein neues Modul hinzu und schreibe deinen Code.

  3. Definiere die Sprungmarke: Verwende eine Bezeichnung, um die Stelle im Code zu markieren, zu der du springen möchtest. Beispiel:

    Sub MeinMakro()
       If ActiveCell.Value = 1 Then
           GoTo Sprungmarke
       End If
       ' Weitere Anweisungen
    
    Sprungmarke:
       ' Anweisungen, die ausgeführt werden, wenn die Bedingung erfüllt ist
    End Sub
  4. Teste dein Makro: Führe das Makro aus und überprüfe, ob der Sprung funktioniert.


Häufige Fehler und Lösungen

  • Fehler: „Sprungmarke nicht gefunden“
    Lösung: Stelle sicher, dass die Sprungmarke richtig definiert ist und sich an einer zugänglichen Stelle im Code befindet.

  • Fehler: Unberechenbare Ergebnisse
    Lösung: Vermeide übermäßige Verwendung von GoTo, da dies deinen Code unübersichtlich machen kann. Verwende stattdessen strukturierte Programmierung.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, um den Code zu strukturieren und Sprünge zu vermeiden:

  1. Subroutine verwenden: Du kannst deine Logik in verschiedene Subs aufteilen und diese bei Bedarf aufrufen:

    Sub HauptMakro()
       If ActiveCell.Value = 1 Then
           Call ZweitesMakro
       End If
    End Sub
    
    Sub ZweitesMakro()
       ' Anweisungen für den zweiten Schritt
    End Sub
  2. Select Case verwenden: Eine weitere Möglichkeit ist die Verwendung von Select Case, um verschiedene Bedingungen zu überprüfen.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du mit GoTo eine bestimmte Zeile in einem Makro ansteuern kannst:

Sub BeispielMakro()
    If ActiveCell.Value = 0 Then
        GoTo Anweisungen
    End If
    ' Weitere Anweisungen
    Exit Sub

Anweisungen:
    MsgBox "Die Bedingung ist erfüllt!"
End Sub

In diesem Beispiel wird eine Nachricht angezeigt, wenn die aktive Zelle den Wert 0 hat.


Tipps für Profis

  • Vermeide übermäßige Verwendung von GoTo: Dies kann deinen Code unübersichtlich machen. Überlege dir, ob du mit Funktionen und Subroutinen arbeiten kannst, um deinen Code zu strukturieren.
  • Nutze Option Explicit: Dies zwingt dich dazu, alle Variablen zu deklarieren, was die Fehlersuche erleichtert.
  • Kommentiere deinen Code: Halte deinen Code sauber und verständlich, indem du Kommentare hinzufügst, die die Logik erklären.

FAQ: Häufige Fragen

1. Kann ich mehrere Sprungmarken in einem Makro verwenden?
Ja, du kannst mehrere Sprungmarken definieren, aber sei vorsichtig, um die Übersichtlichkeit deines Codes zu bewahren.

2. Was ist der Unterschied zwischen GoTo und Call?
GoTo springt zu einer bestimmten Stelle im Code, während Call eine andere Subroutine aufruft. Call ist oft die bessere Wahl für die Strukturierung deines Codes.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige