Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Fehlermeldung abfangen

    Betrifft: Fehlermeldung abfangen von: Tom
    Geschrieben am: 31.08.2003 15:21:48

    Hallo
    Mit dem Makrorekorder habe ich folgendes Marko aufgezeichnet und einer Befehlsschaltfläche zugewiesen.

    Sub kopieren()
    
        Sheets("Auftragsbestätigung").Select
        Sheets("Auftragsbestätigung").Copy After:=Sheets(2)
        Sheets("Auftragsbestätigung (2)").Select
        Sheets("Auftragsbestätigung (2)").Name = "Rechnung"
        Sheets("Rechnung").Select
        Sheets("Rechnung").Copy After:=Sheets(3)
        Sheets("Rechnung (2)").Select
        Sheets("Rechnung (2)").Name = "Lieferschein"
        Sheets("Berechnung").Select
    End Sub
    

    Wenn ich aber aus Versehen das Makro zweimal ausführe erscheint eine Fehlermeldung, weil die Tabelle schon existiert.
    Wie muss ich den Code ergänzen, dass in diesem Fall eine Meldung erscheint und das Makro dann abgebrochen wird.
    Im Voraus vielen Dank für Tipps.
    Tom
      


    Betrifft: AW: Fehlermeldung abfangen von: Folker
    Geschrieben am: 31.08.2003 15:54:22

    Hallo Tom,

    das Abfangen des Fehler könnte wie folgt aussehen. Du solltest dir auch die select Anweisungen sparen, da damit nur zwischen den Sheets hin und hergesprungen wird und das Performance kostet. Mit sheets("XXX"). referenziertst du ja schon das sheet.

    Gruss Folker


    Sub kopieren()
    on error goto exists
        Sheets("Auftragsbestätigung").Copy After:=Sheets(2)
        Sheets("Auftragsbestätigung (2)").Name = "Rechnung"
        Sheets("Rechnung").Copy After:=Sheets(3)
        Sheets("Rechnung (2)").Name = "Lieferschein"
    exit sub
    exists:
    msgbox("Tabelle existiert schon!")
    End Sub
    



      


    Betrifft: AW: Fehlermeldung abfangen von: Tom
    Geschrieben am: 31.08.2003 16:09:44

    Hallo Folker

    Vielen Dank für den Tipp.
    Bei deinem Code wird trotzdem noch die Tabelle Auftragsbestätigung kopiert mit dem Namen Auftragsbestätigung (2).
    Wie kann ich diese Ausführung unterbinden?
    Tom


      


    Betrifft: AW: Fehlermeldung abfangen von: Hajo_Zi
    Geschrieben am: 31.08.2003 16:12:29

    Hallo Tom

    Sub kopieren()
        On Error GoTo exists
        Sheets("Auftragsbestätigung").Copy After:=Sheets(2)
        ActiveSheet.Name = "Rechnung"
        Sheets("Rechnung").Copy After:=Sheets(3)
        ActiveSheet.Name = "Lieferschein"
        Exit Sub
    exists:
        MsgBox ("Tabelle existiert schon!")
        Application.DisplayAlerts = False
        ActiveSheet.Delete
        Application.DisplayAlerts = True
    End Sub
    


    Grußformel

    Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
    Bitte kein Mail, Probleme sollen im Forum gelöst werden.

    Microsoft MVP für Excel

    Das Forum lebt auch von den Rückmeldungen.

    Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

    Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
    Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
    Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
    Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.


      


    Betrifft: AW: Fehlermeldung abfangen von: tom
    Geschrieben am: 31.08.2003 16:16:48

    Hallo Hajo

    Code funktioniert jetzt bestens.
    Vielen Dank für die Hilfe.

    Tom


      


    Betrifft: Danke für die Rückmeldung oT von: Hajo_Zi
    Geschrieben am: 31.08.2003 16:17:37




     

    Beiträge aus den Excel-Beispielen zum Thema " Fehlermeldung abfangen"