Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Exit Sub wenn Inputbox abbrechen

Exit Sub wenn Inputbox abbrechen
22.07.2015 16:07:24
Judith
Hallo zusammen,
ich habe mal wieder ein scheinbar einfaches Problem, für das ich bisher einfach keine Lösung gefunden habe.
Ich habe ein neues Arbeitsblatt eingefügt, dass basierend auf dem Inhalt in Zelle C9 in einem anderen Tabellenblatt(umbenannt in poverview) benannt werden soll.
Wenn bereits ein Tabellenblatt mit diesem Namen existiert, soll eine Inputbox ausgegeben werden, in der der User einen neuen Namen eingeben kann - soweit so gut.
Nun möchte ich aber, dass das Makro abgebrochen wird, falls "abbrechen" bei der Inputbox angeklickt wird. Ich habe schon mehrere Ansätze ausprobiert, aber leider ohne Erfolg. Das Makro wird weiter ausgeführt, auch wenn "abbrechen" gewählt wird.
Hier ist mein Code:
On Error Resume Next
ActiveSheet.Name = poverview.Range("C9")
If Err.Number = 1004 Then
ActiveSheet.Name = InputBox("Cost center tab already exists. Please give sheet a new name.")
End If

Ich habe es schon mit den folgenden Codes versucht :
If ActiveSheet.Name = False Then Exit Sub
End if
If ActiveSheet.Name = vbNullString Then
MsgBox ("User canceled!")
End If
If StrPtr(ActiveSheet.Name) = 0 Then
MsgBox "You pressed Cancel!"
End if

Habt ihr vielleicht eine Idee?
Viele Grüße
Judith

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Exit Sub wenn Inputbox abbrechen
22.07.2015 16:15:42
UweD
Hallo
evtl so ?
    INP = InputBox("Cost center tab already exists. Please give sheet a new name.")
If INP  "" Then
MsgBox "Juhu"
'Weiter
ActiveSheet.Name = INP
Else
MsgBox "NeNe"
Exit Sub
End If
Gruß UweD

AW: Exit Sub wenn Inputbox abbrechen
22.07.2015 16:21:46
Nepumuk
Hallo,
ungefähr so?
Public Sub Beispiel()
    Dim strReturn As String
    On Error Resume Next
    ActiveSheet.Name = poverview.Range("C9")
    If Err.Number = 1004 Then
        Do
            Err.Clear
            strReturn = InputBox("Cost center tab already exists. " & _
                "Please give sheet a new name.")
            If StrPtr(strReturn) <> 0 Then
                ActiveSheet.Name = strReturn
                If Err.Number <> 0 Then
                    Call MsgBox("Tab name exist or " & _
                        "forbidden characters used." & vbLf & vbLf & "Try again.")
                Else
                    Exit Do
                End If
            Else
                Exit Do
            End If
        Loop
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Exit Sub wenn Inputbox abbrechen
22.07.2015 16:37:14
Judith
Hallo Uwe, Hallo Nepomuk,
leider bekomme ich es nicht hin, dass das Makro abgebrochen wird, sondern das Makro wird weiter ausgeführt. Anbei ist mein ExcelFile zur besseren Übersicht.
https://www.herber.de/bbs/user/99017.xlsm
Viele Grüße,
Judith

Anzeige
AW: Exit Sub wenn Inputbox abbrechen
22.07.2015 20:30:46
Judith
Hat niemand eine Idee?

AW: Exit Sub wenn Inputbox abbrechen
23.07.2015 10:15:44
UweD
du sendest eine Datei, wo sofort ein Zirkelbezug Fehler kommt.
Da hab ich schon kein Interess mehr was dran zu machen.
bin Raus

AW: Exit Sub wenn Inputbox abbrechen
23.07.2015 14:03:28
Judith
Hallo Uwe,
Du hast recht, das ist alles andere als hilfreich. Hier ist die korrigierte Datei - ohne Zirkelbezug.
https://www.herber.de/bbs/user/99037.xlsm
Hast du oder jemand anders eine Idee wie ich das Prroblem lösen kann?
VG
Judith

Anzeige
AW: Exit Sub wenn Inputbox abbrechen
23.07.2015 16:56:13
Nepumuk
Hallo,
veryvery dirty:
Sub Save_Output()
    
    Application.ScreenUpdating = False
    
    Dim poverview As Worksheet
    Dim lastrow As Long
    Dim strSheetName As String
    
    Set poverview = Worksheets("Pivot_Overview")
    
    '-----------Add Worksheet, rename it and copy&paste Pivot_Overview to new sheet----------------------------------------------------------------------
    
    lastrow = poverview.Cells(Rows.Count, 2).End(xlUp).Row
    
    poverview.Range("B8:K" & lastrow).Copy
    Worksheets.Add Before:=Worksheets(1) 'Add Worksheet before the first tab
    
    On Error Resume Next
    ActiveSheet.Name = poverview.Range("C9")
    If Err.Number = 1004 Then
        strSheetName = InputBox("Cost center tab already exists. Please give sheet a new name.")
        If StrPtr(strSheetName) = 0 Then Exit Sub
        ActiveSheet.Name = strSheetName
    End If
    
    ActiveSheet.Range("B14").PasteSpecial Paste:=xlPasteValues
    
End Sub

Gruß
Nepumuk

Anzeige
AW: Exit Sub wenn Inputbox abbrechen
23.07.2015 17:25:32
Judith
Dirty oder nicht, it does the trick. Vielen Dank !
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Inputbox abbrechen und Makro beenden in Excel VBA


Schritt-für-Schritt-Anleitung

Um sicherzustellen, dass ein Makro in Excel VBA abgebrochen wird, wenn die Inputbox abgebrochen wird, kannst du folgenden Code verwenden:

Sub Beispiel()
    Dim INP As String
    INP = InputBox("Cost center tab already exists. Please give sheet a new name.")

    If INP <> "" Then
        ActiveSheet.Name = INP
    Else
        MsgBox "Makro wurde abgebrochen!"
        Exit Sub
    End If
End Sub

In diesem Beispiel wird die Variable INP verwendet, um den eingegebenen Namen der Inputbox zu speichern. Wenn der Nutzer auf „Abbrechen“ klickt, wird INP leer sein, und das Makro wird mit Exit Sub beendet.


Häufige Fehler und Lösungen

  1. Fehler: Makro wird trotz Abbrechen fortgesetzt

    • Lösung: Stelle sicher, dass du die Bedingung korrekt überprüfst. Verwende If INP <> "" Then, um zu prüfen, ob der Nutzer einen Namen eingegeben hat.
  2. Fehler: Inputbox zeigt falsche Informationen an

    • Lösung: Überprüfe den Text in der Inputbox, um sicherzustellen, dass die Meldung klar und verständlich ist.
  3. Fehler: Anwendungsfehler beim Umbenennen eines Arbeitsblatts

    • Lösung: Stelle sicher, dass der eingegebene Name keine ungültigen Zeichen enthält und dass er nicht bereits verwendet wird.

Alternative Methoden

Wenn du eine robustere Lösung benötigst, um die Inputbox-Abfrage zu behandeln, kannst du eine Schleife verwenden, um den Nutzer erneut um die Eingabe zu bitten, falls der eingegebene Name ungültig ist:

Sub Save_Output()
    Dim poverview As Worksheet
    Dim strSheetName As String

    Set poverview = Worksheets("Pivot_Overview")

    Do
        strSheetName = InputBox("Cost center tab already exists. Please give sheet a new name.")

        If StrPtr(strSheetName) = 0 Then Exit Sub

        On Error Resume Next
        ActiveSheet.Name = strSheetName

        If Err.Number = 0 Then Exit Do
        MsgBox "Tab name exists or forbidden characters used. Try again."
        Err.Clear
    Loop
End Sub

Hier wird eine Schleife verwendet, die so lange den Nutzer nach einem neuen Namen fragt, bis ein gültiger Name eingegeben wird oder die Eingabe abgebrochen wird.


Praktische Beispiele

  1. Beispiel 1: Mit MsgBox bei Abbruch

    • Wenn der Nutzer „Abbrechen“ drückt, erhält er eine Nachricht:
      If StrPtr(strReturn) = 0 Then
      MsgBox "Du hast die Eingabe abgebrochen."
      Exit Sub
      End If
  2. Beispiel 2: Arbeitsblatt umbenennen

    • Mit einer Inputbox wird der Nutzer gefragt, einen neuen Namen einzugeben, wenn der gewünschte Name bereits existiert. Sollte der Nutzer „Abbrechen“ wählen, wird das Makro beendet.

Tipps für Profis

  • Verwende On Error Resume Next sparsam, um unerwartete Fehler zu vermeiden. Es ist besser, spezifische Fehlerbehandlungen zu implementieren.
  • Halte deine Inputbox-Meldungen klar und präzise, um Missverständnisse zu vermeiden.
  • Teste deinen Code gründlich, um sicherzustellen, dass alle möglichen Eingaben und Abbrüche korrekt behandelt werden.

FAQ: Häufige Fragen

1. Wie kann ich das Makro sofort beenden, wenn der Nutzer „Abbrechen“ wählt? Um das zu erreichen, kannst du die Eingabe der Inputbox mit If StrPtr(strReturn) = 0 Then Exit Sub überprüfen.

2. Was passiert, wenn der Nutzer einen ungültigen Namen eingibt? Du kannst eine Fehlermeldung anzeigen, wenn der Name nicht gültig ist, indem du Err.Number überprüfst und eine entsprechende MsgBox anzeigst.

3. Gibt es eine Möglichkeit, die Inputbox ansprechender zu gestalten? Ja, du kannst benutzerdefinierte Formulare in VBA erstellen, die mehr Kontrolle über das Design und die Funktionalität bieten.

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