Office: VBA: "Abbrechen"-Button bei InputBox - Gelöst

Helfe beim Thema VBA: "Abbrechen"-Button bei InputBox - Gelöst in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Office-User, ich tobe seit einer weile in Excel mit VBA herum. Bisher bekam ich meiner Meinung die komplizierte Dinge hin. Nur mit einer... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von E-MaX-I, 8. Juni 2011.

  1. E-MaX-I Erfahrener User

    VBA: "Abbrechen"-Button bei InputBox - Gelöst


    Hallo Office-User,

    ich tobe seit einer weile in Excel mit VBA herum. Bisher bekam ich meiner Meinung die komplizierte Dinge hin.

    Nur mit einer Sache habe ich Probleme, meiner Meinung nach unverständlich, denn wenn ich bei einer InputBox auf Abbrechen drücke sollte die dann auch abbrechen. Jedoch springt er weiter zum nächsten Schritt.

    Code:
    Sub Schaltfläche_Klichen1()
    ...
    Dim Kopien
    Kopien = InputBox "Wieviel Exemplare wird benötigt?", "Anzahl der Exemplare", 1
    
    Application.Dialogs(xlDialogPrint).Show arg1:=2, arg2:=SeiteVon, arg3:=SeiteBis, arg4:=Kopien
    ...
    End Sub
    
    "SeiteVon" und "SeiteBis" werden im Schritt vorher ermittelt von welcher bis zu welcher Seite ausgedruck werden sollen, somit wird verhindert das nicht jedes Mal 30 Seiten ausgedruckt wird wenn man nur 2 davon benötigt.

    Hoffe sehr das man mir da helfen kann.

    Gruß
    Emi
     
    E-MaX-I, 8. Juni 2011
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Halo Emi,

    Option Explicit

    Sub Schaltfläche_Klichen1()
    Dim Kopien
    Kopien = InputBox("Wieviel Exemplare wird benötigt?", "Anzahl der Exemplare", 1)
    If Kopien <> "" Then
    MsgBox 1
    'Application.Dialogs(xlDialogPrint).Show arg1:=2, arg2:=SeiteVon, arg3:=SeiteBis, arg4:=Kopien
    End If
    End Sub

    Gruß hajo
     
    Hajo_Zi, 8. Juni 2011
    #2
  3. E-MaX-I Erfahrener User
    Vielen Dank...

    Hallo Hajo,

    vielen Dank für deine Lösung, funktioniert einwandfrei.

    Habe die Zeile 'MsgBox 1' entfernt, da ein erneutes klicken auf OK fällig wird.

    Ich verstehe aber nicht ganz wieso man mit If Abfragen muß.

    Mein versuch war zuerst mit:

    ...= vbCancel Then
    Exit Sub

    und das wollte nicht, das schlimme war aber das ich davon nicht mehr losgekommen bin. :roll:

    Danke nocheinmal und einen schönen Abend
    Emi
     
    E-MaX-I, 8. Juni 2011
    #3
  4. miriki Erfahrener User

    VBA: "Abbrechen"-Button bei InputBox - Gelöst

    Zur Erklärung dann vielleicht:

    Das Klicken auf "Abbrechen" bewirkt nicht, daß Dein VBA-Code abgebrochen wird. Es bewirkt einzig und allein, daß der Dialog abgebrochen wird. Im Prinzip, so von "außen" betrachtet, ist das aber auch nichts anderes, als das Klicken auf "OK", "Wiederholen", "...

    Denn: In allen diesen Fällen wird der Dialog geschlossen. Der Unterschied ist, daß der Dialog einen Wert zurück gibt, mit dem das aufrufende Programm weiß, welcher der Buttons gedrückt wurde. Und diesen Wert gilt es, auszuwerten.

    Wenn Du nach der InputBox nicht nachguckst, was denn zurückgekommen ist, dann akzeptierst Du jede Eingabe als gültig und machst munter mit der Abarbeitung weiter.

    Leider, leider... Man kann nicht unterscheiden, ob die Eingabe "" ist und dann "OK" geklickt wurde oder ob die Eingabe "" ist, weil "Abbruch" geklickt wurde. Ich würde NULL als Rückgabewert bei "Abbruch" bevorzugen, aber man kann ja bekanntlich nicht alles haben...

    Code:
    Private Sub CommandButton2_Click()
    
        Dim sInput As String
    
        sInput = InputBox("alter?")
    
        If sInput = "" Then
            MsgBox "abbruch / leere eingabe"
            Exit Sub
          Else
            MsgBox "ok, weiter geht's..."
        End If
    
    End Sub
    Mal als Gegenbeispiel eine MsgBox-Auswertung:
    Code:
    Private Sub CommandButton1_Click()
    
        Dim iButton As Integer
    
        MsgBox "allgemein 1"
    
        iButton = MsgBox("männlich?", vbYesNoCancel)
    
        ' männlich
        If iButton = vbYes Then
            MsgBox "männlich"
          Else
    
            ' weiblich
            If iButton = vbNo Then
                MsgBox "weiblich"
              Else
    
                ' abbruch, da unsicherheit besteht... ;-)
                If iButton = vbCancel Then
                    MsgBox "ok, dann später vielleicht."
                    Exit Sub
                  Else
    
                    ' da hat jemand noch 'n 4. button gefunden...
                    MsgBox "jetzt ich bin verwirrt..."
    
                End If
            End If
        End If
    
        MsgBox "allgemein 2"
    
    End Sub
    Gruß, Michael
     
    miriki, 9. Juni 2011
    #4
  5. E-MaX-I Erfahrener User
    :-D

    Hi,

    vielen Dank für die ausführliche Erklärung, jetzt kann ich es nachvollziehen warum.

    Mein Fehler war halt das ich davon ausgegangen bin das beim anklicken auf Abbrechen auch das Program abbricht, aber das er nur den einen Punkt abbricht... naja, darauf bin ich nicht gekommen.

    :roll:
    Naja, solange am Ende mein Vater damit arbeiten kann ist viel erreicht, er kennt sich nämlich mit Computer garnicht aus. Dementsprechend soll es am Ende einfach für ihn sein. :mrgreen: Habe nicht immer Lust und Zeit nach der Arbeit seine Arbeit zu machen.

    Dank nochmal
    Gruß
    Emi
     
    E-MaX-I, 13. Juni 2011
    #5
Thema:

VBA: "Abbrechen"-Button bei InputBox - Gelöst

Die Seite wird geladen...
  1. VBA: "Abbrechen"-Button bei InputBox - Gelöst - Similar Threads - VBA Abbrechen Button

  2. Datum einer Datei per VBA auslesen

    in Microsoft Access Hilfe
    Datum einer Datei per VBA auslesen: Hallo, ich möchte mit Access VBA das Änderungsdatum einer Excel-Datei auslesen. Hat vielleicht einer eine Idee oder so etwas schon mal gemacht? Über jede Hilfe wäre ich sehr dankbar. liebe Grüße...
  3. VBA Code Anpassen "Wert Einfügen statt Formel"

    in Microsoft Excel Hilfe
    VBA Code Anpassen "Wert Einfügen statt Formel": Hallo alle zusammen. Ich benötige bitte Hilfe von einem Experten, da ich mit meinem Code unzufrieden bin und dieser bei größeren Datenmengen respektive Zeilen ziemlich langsam wird. Wie müsste man...
  4. Abbrechen Button bei Inputbox

    in Microsoft Excel Hilfe
    Abbrechen Button bei Inputbox: Hallo zusammen, ich habe folgendes Problem: wenn ich bei meiner InputBox auf "Abbrechen" oder auf das "X" zum Schließen des Dialogfeldes drücke, erscheint die Fehlermeldung "Typen unverträglich"....
  5. VBA Makro abbrechen durch Inputbox

    in Microsoft Word Hilfe
    VBA Makro abbrechen durch Inputbox: Hallo zusammen, dank Gerhard H aus diesem Forum habe ich das folgende Makro im Einsatz, bei dem eine Spalte einer Tabelle in Word auf einen vom Anwender eingegebenen Begriff durchsucht wird und...
  6. Inputbox bei [Abbrechen] schließen -> Excel 2007; Frage; VBA

    in Microsoft Excel Hilfe
    Inputbox bei [Abbrechen] schließen -> Excel 2007; Frage; VBA: Hallo! Da bin ich also wieder mal und habe eine Frage. Ich hacke momentan an einer Inputbox, die ich nicht richtig programmiert bekomme. Und zwar möchte ich gerne folgendes mit dieser InputBox...
  7. VBA Input-Box Abbrechen geht nicht

    in Microsoft Excel Hilfe
    VBA Input-Box Abbrechen geht nicht: Hey, ich habe seit Tagen das Problem, wenn ich etwas in die Inputbox reinschreibe geht alles, wenn ich aber "" lasse sagt er das Feld ist leer! Wenn ich jetzt auf abbrechen gehe sagt er das...
  8. VBA: Laufendes Macro individuell abbrechen (per UserForm ???)

    in Microsoft Excel Hilfe
    VBA: Laufendes Macro individuell abbrechen (per UserForm ???): Hallo, mal eine Frage wegen einer UserForm. Ich habe ein Macro was sehr sehr lange laufen wird (mehrere Stunden) und ich möchte gerne eine Option haben das Macro individuell abzubrechen. Meine...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden