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

allg. Frage: Code an beliebiger Stelle starten

Forumthread: allg. Frage: Code an beliebiger Stelle starten

allg. Frage: Code an beliebiger Stelle starten
05.06.2009 08:53:23
Laura
Hallo,
ich habe eine eher allgemeine Frage, die mich schon länger beschäftigt. Google spuckt dazu nicht viel aus (vielleicht suche ich aber auch falsch).
Kann ich irgendwie bestimmen, daß Code ab einer bestimmten Stelle innerhalb einer Prozedur ausgeführt werden soll?
Beispiel:

Sub Test()
MsgBox "Hallo"
MsgBox "Tach auch"
MsgBox "huhu"
End Sub


Das Makro soll mit der MsgBox "Tach auch" beginnen und die MsgBox "Hallo" nicht berücksichtigen. Geht das und wenn ja, wie?
Ich hoffe, es ist klar, was ich meine.
Vielen Dank schon mal und viele Grüße,
Laura

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Code auf Prozeduren verteilen
05.06.2009 09:05:18
Erich
Hi,
es kommt sicher auch noch ein wenig auf den Zusammenhang an,
aber das hier wäre wohl eine saubere Lösung:

Sub Test()
MsgBox "Hallo"
TestTach
End Sub
Sub TestTach()
MsgBox "Tach auch"
MsgBox "huhu"
End Sub

Dann kannst du wahlweise Test oder TestTach aufrufen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Code auf Prozeduren verteilen
05.06.2009 11:42:51
Laura
Hallo,
daß ich die Prozeduren trennen kann, ist mir klar.
Wenn ich Code schreibe, sind in einer Prozedur ja beliebig viele Zeilen. Während des Schreibens einer Anweisung möchte ich diese aber beispielsweise mal testen. Nur diese Anweisung bzw. das, was im Anschluss daran steht, ohne das, was in den vorigen Zeilen steht. Ich kommentiere mir die vorigen zeilen, die ich nicht testen möchte, immer aus, aber das ist so umständlich.
Daher die Frage, ob es einen Button oder einen Befehl gibt, der sinngemäß "Code ab hier laufen lassen" heißt?
Viele Grüße und Danke für die Mühe,
Laura
Anzeige
AW: Code auf Prozeduren verteilen
05.06.2009 12:02:11
Peter
Hallo Laura
eventuell hilft dir ein Haltepunkt
am linken Rand des Codefensters mit der linken Maustaste klicken
dann erscheint dort ein brauner Punkt.
Wenn du jetzt dein Makro laufen lässt
stopt es an diesem Haltepunkt und kann mit f8 zeilenweise fortgesetzt werden.
ciao peter
Anzeige
Testen mit GoTo
05.06.2009 12:57:34
Erich
Hi Laura,
vielleicht ist GoTo am praktischsten für dich, etwa nach diesem Muster:

Sub tst()
Dim lngA As Long
lngA = 7
GoTo XXTST
lngA = lngA + 1  ' wird übersprungen
lngA = lngA + 1  ' wird übersprungen
lngA = lngA + 1  ' wird übersprungen
XXTST:
lngA = 4 * lngA
MsgBox lngA
End Sub

Das Wichtigste dabei: Nach dem Test solltest du die Goto-Zeile und die Sprungmarke entfernen.
In einem ordentlichen Programm hat so etwas nichts zu suchen.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Testen mit GoTo
05.06.2009 14:19:49
Laura
Hallo,
Eure Lösungsvorschläge sind alle gut und funktionieren natürlich, aber nur, um etwas eben mal auszutesten, sind mir diese Wege zu kompliziert, da ich immer Codezeilen einfügen / entfernen muss.
Ich habe beim Rumexperimentieren aber jetzt herausgefunden, dass ich die Prozedur mit F8 starten kann und einfach mit gedrückter Maustaste die gelbe Markierung an eine beliebige Stelle schieben kann. Je nach Prozedurlänge etwas unhandlich, aber immer noch besser, als Sprungmarken einzufügen oder die Prozeduren zu trennen. Die Prozedur als solches soll ja genau so bestehen bleiben, es geht mir ja nur um Testzwecke.
So wird in der einen Prozedur eine Datei geöffnet, Spalten gelöscht, etwas aufgehübscht (Spaltenbreite, Ausrichtung) und unter einem Namen abgespeichert und wieder geschlossen. Dieser Vorgang soll auch in einer Prozedur abgearbeitet werden. Ich schreibe also den Code zum Öffnen der Datei, teste diesen und wenn ok, ergänze ich die Zeilen für das Spaltenlöschen / Aufhübschen. Das teste ich dann wieder, muss aber am Anfang das Dateiöffnen auskommentieren, da die Datei ja bereits geöffnet ist. Getestet werden soll dann nur das Löschen der Spalten und die Aufhübschung. Vielleicht ist es jetzt nachvollziehbar, warum ich eine einfache, unkomplizierte und schnelle Lösung gesucht habe, die es wohl nicht zu geben scheint.
Ich danke Euch für Eure Mühe.
Viele Grüße,
Laura
Anzeige
Es gibt leider nur "Ausführen bis (CursorPos)",...
05.06.2009 16:07:14
Luc:-?
...Laura,
nicht "Ausführen ab..."! Aber mit Haltepkt setzen und Markierung verschieben kannst du dich notfalls behelfen (mache ich ggf auch so). Alternativ (vor allem bei Workbook_Open-EventProcs) setze ich Stop-Kommandos.
Gruß Luc :-?
;
Anzeige
Anzeige

Infobox / Tutorial

Code ab beliebiger Stelle in Excel VBA ausführen


Schritt-für-Schritt-Anleitung

  1. Prozeduren aufteilen: Wenn du deinen Code in verschiedene Prozeduren unterteilen kannst, wird es einfacher, spezifische Teile auszuführen. Erstelle eine separate Subroutine für den Code, den du testen möchtest. Beispiel:

    Sub Test()
        MsgBox "Hallo"
        TestTach
    End Sub
    
    Sub TestTach()
        MsgBox "Tach auch"
        MsgBox "huhu"
    End Sub
  2. Haltepunkte setzen: Du kannst Haltepunkte im Code setzen, indem du im linken Rand des Codefensters mit der linken Maustaste klickst. Dies ermöglicht es dir, den Code an einer bestimmten Stelle anzuhalten und mit F8 den Code zeilenweise auszuführen.

  3. GoTo verwenden: Eine alternative Methode ist die Verwendung von GoTo, um direkt zu einem bestimmten Punkt im Code zu springen. Beispiel:

    Sub tst()
        Dim lngA As Long
        lngA = 7
        GoTo XXTST
        lngA = lngA + 1  ' wird übersprungen
    XXTST:
        lngA = 4 * lngA
        MsgBox lngA
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Haltepunkt wird nicht erreicht
    Lösung: Stelle sicher, dass der Haltepunkt richtig gesetzt ist und dass das Makro nicht vor dem Haltepunkt ausgeführt wird.

  • Fehler: GoTo führt zu unerwarteten Ergebnissen
    Lösung: Überprüfe deine Sprungmarken und stelle sicher, dass du nach dem Testen die GoTo-Zeile entfernst, um die Übersichtlichkeit des Codes zu bewahren.


Alternative Methoden

  • F8 für schrittweise Ausführung: Mit der Taste F8 kannst du deinen Excel VBA-Code zeilenweise ausführen. Dies erlaubt dir, den Fortschritt zu beobachten und sicherzustellen, dass jede Zeile wie gewünscht funktioniert.

  • CursorPosition nutzen: Du kannst auch den Befehl „Ausführen bis (CursorPos)“ verwenden, um den Code bis zu einer bestimmten Stelle auszuführen. Dies ist besonders nützlich, wenn du einen bestimmten Abschnitt testen möchtest, ohne den gesamten Code auszuführen.


Praktische Beispiele

  • Beispiel 1: Einfache Prozedur

    Sub TestProzedur()
      MsgBox "Dies ist ein Test"
      MsgBox "Noch ein Test"
    End Sub
  • Beispiel 2: Verwendung von Haltepunkten
    Setze einen Haltepunkt nach der ersten MsgBox, um sicherzustellen, dass du die zweite MsgBox separat testen kannst.


Tipps für Profis

  • Verwende Kommentare: Kommentiere vorübergehend Codezeilen aus, die du nicht testen möchtest, um die Übersichtlichkeit zu verbessern.

  • Debug.Print: Anstelle von MsgBox kannst du Debug.Print verwenden, um Informationen im Direktfenster anzuzeigen. Dies ist weniger aufdringlich und ermöglicht eine bessere Überwachung während der Entwicklung.


FAQ: Häufige Fragen

1. Wie kann ich einen bestimmten Teil meines Codes einfach testen?
Du kannst Prozeduren aufteilen oder GoTo verwenden, um zu einem bestimmten Punkt im Code zu springen.

2. Ist es möglich, den Code ohne manuelle Änderungen auszuführen?
Ja, du kannst Haltepunkte setzen und mit F8 den Code zeilenweise ausführen, ohne Änderungen am Code vorzunehmen.

3. Was ist der beste Weg, um Fehler im Code zu finden?
Setze Haltepunkte und verwende die schrittweise Ausführung (F8), um den Code genau zu verfolgen und Fehler zu identifizieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige