Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

zu Spungmarke in anderem Modul springen

zu Spungmarke in anderem Modul springen
08.08.2014 15:23:01
ela
Hallo,
ich bin gerade dabei meinen Code zu modularisieren.
Den Code den ich in Modul1 "outsource" enthält eine Sprungmarke, welche in Tabelle1 definiert ist.
Hier ein kurzes Codebsp:
Sub Test ()
dim zaehler as integer
dim nenner as integer
'code
'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
Modul1.teilen zaehler, nenner
'code
beenden:
'code
End Sub
Sub teilen(zaehler as integer, nenner as integer)
dim ergebnis as integer
on error goto beenden
ergebnis = zaehler/nenner
on error goto 0
End Sub

Geht es nun, dass wenn in Modul1.teilen() ein fehler auftritt, dass die prozedur abbricht und zur sprungmarke "beenden" in Tabelle1.Test springt?
Bzw wie programmiere ich das?
Vielen dank für eure Hilfe
Grüße
Ela

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: zu Spungmarke in anderem Modul springen
08.08.2014 15:34:57
Arthur
Hallo Ela.
Beruhigender Weise geht das nicht - hoffentlich. Nutze dafür anstelle einer Sub eine Function und gebe als Returnwert die Erro.Number zurück. Damit bist du frei in Test() alles zu tun, was du möchtest.
Gruß, Arthur

AW: zu Spungmarke in anderem Modul springen
08.08.2014 15:36:59
Nepumuk
Hallo,
im Prinzip könntest du das so machen:
Sub Test()
    Dim zaehler As Integer
    Dim nenner As Integer
    
    'code
    
    'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
    If Modul1.teilen(zaehler, nenner) Then
        
        'code
        
    End If
    'code
    
End Sub
Public Function teilen(zaehler As Integer, nenner As Integer) As Boolean
    Dim ergebnis As Integer
    
    On Error GoTo err_exit
    ergebnis = zaehler / nenner
    teilen = True
    err_exit:
End Function

Oder du schleifst den Fehler in die Hauptroutine durch. Denn du willst ja wahrscheinlich nicht nur zum testen teilen, sondern du willst auch das Ergebnis zurück bekommen.
Sub Test()
    Dim zaehler As Integer
    Dim nenner As Integer
    Dim ergebniss As Integer
    
    On Error GoTo err_exit
    
    'code
    
    'Aufruf der Prozedur in Modul 1 mit übergabe der werte von zähler und nenner
    
    On Error GoTo Notausgang
    
    ergebniss = Modul1.teilen(zaehler, nenner)
    
    On Error GoTo err_exit
    
    'code
    
    Notausgang:
    
    On Error GoTo err_exit
    
    'code
    
    err_exit:
End Sub
Public Function teilen(zaehler As Integer, nenner As Integer) As Integer
    teilen = zaehler / nenner
End Function

Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige