Office: Application.Undo bei ComboBoxen möglich?

Helfe beim Thema Application.Undo bei ComboBoxen möglich? in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen! Ich habe zwei Comboboxen, die voneinander abhängig sind. Beispiel: [KONTINENT] Europa, Amerika ... [LAND] Deutschland, USA ...... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Pumàh, 9. August 2010.

  1. Pumàh Erfahrener User

    Application.Undo bei ComboBoxen möglich?


    Hallo zusammen!

    Ich habe zwei Comboboxen, die voneinander abhängig sind. Beispiel:

    [KONTINENT] Europa, Amerika ...
    [LAND] Deutschland, USA ...

    Nehmen wir an, sowohl Kontinent als auch das Land sind ausgewählt. Nun habe ich per VBA programmiert, dass das Land zurückgesetzt wird, sobald man den Kontinent wieder ändern will und dies noch in eine MsgBox verpackt:

    "Wenn Sie den Kontinent ändern, wird das Land zurückgesetzt! Möchten Sie fortfahren?" [Ja/Nein]

    Bei Klick auf Ja wird automatisch das Land zurückgesetzt.

    Bei Klick auf Nein versuchte ich mit Application.Undo die bereits vorgenommene Änderung dann wieder rückgängig zu machen, da ich ja nicht möchte dass das Land gelöscht wird! Mochte Excel nicht. Ich habe dann herausgefunden, dass es geht, wenn ich z.B. Text in eine Zelle eingebe, der ist danach wieder weg sprich es wurde "rückgängig" gemacht. Das verändern der Combobox-Auswahl kann aber nicht rückgängig gemacht werden - hat jemand eine Alternative?

    Ich wollte es am Anfang ganz anders machen und das Ereignis ComboBox_Click() statt ComboBox_Change() nehmen, sodass der Eintrag noch nicht geändert ist, aber ich glaube beide Ereignisse bewirken das gleiche!

    Code:
    Sub ComboBox_Change()
    If Sheets("Daten01").Range("Land") = "1" Then
    Else
        Dim byWert As Byte
        byWert = MsgBox(""Wenn Sie den Kontinent ändern, wird das Land zurückgesetzt! Möchten Sie fortfahren?", vbCritical + vbYesNo, "Kontinent ändern")
        If byWert = 7 Then
        Call Nein
        ElseIf byWert = 6 Then
        End If
    End If
    
    Sheets("Daten01").Range("Land") = "1"
    End Sub
    
    Sub Nein()
    Application.Undo
    End
    End Sub
     
    Pumàh, 9. August 2010
    #1
  2. Beverly
    Beverly Erfahrener User
    Hi,

    handelt es sich um ComboBoxen im Tabellenblatt oder auf einem UserForm? Eine hochgeladene Arbeitsmappe wäre hilfreich.

    Bis später,
    Karin
     
    Beverly, 10. August 2010
    #2
  3. Pumàh Erfahrener User
    Hallo Karin!

    Im Tabellenblatt. Hab die XLS jetzt mal angefügt.

    Einfacher gesagt suche ich eine Möglichkeit, dass bei der Frage "Wollen Sie fortfahren?" bei Klick auf Nein der vorherige Zustand der ComboBox/LinkedCell wieder hergestellt wird und bei Klick auf Ja die LinkedCell zurückgesetzt (auf 0 gestellt) wird - letzteres klappt ja schon.

    Hoffe du verstehst was ich meine. Danke bereits im Voraus!
     
  4. Beverly
    Beverly Erfahrener User

    Application.Undo bei ComboBoxen möglich?

    Hi,

    bei Steuerelementen aus der Formular-Symbolleiste gibt es keine Möglichkeit, den vorhergehenden Inhalt auszulesen, sodass man auch nichts zurücksetzen kann. Verwende stattdessen eine ComboBox aus der Steuerelemente-Toolbox - sie besitzt die Eigenschaft DropButtonClick, die man verwenden kann um den ursprünglichen Zustand auszulesen.
    Unter den Eigenschaften schreibst du in ListFillRange Kontinente - sonst keine weiteren Einträge. Der folgende Code im Codemodul des Tabellenblattes sollte dann alles steuern:
    Code:
    Option Explicit
    Dim strKontinent As String
    Dim booAction As Boolean
    
    Private Sub ComboBox1_Change()
        Dim byWert As Byte
        Application.EnableEvents = False
        If ComboBox1 <> strKontinent Then
            If ComboBox1 <> "" Then
                If booAction = False Then
                    byWert = MsgBox("Wenn Sie den Kontinent ändern, wird das Land zurückgesetzt! Möchten Sie fortfahren?", vbCritical + vbYesNo, "Kontinent ändern")
                    booAction = True
                    If byWert = 7 Then
                        ComboBox1 = strKontinent
                    ElseIf byWert = 6 Then
                        Range("LandLinkedCell") = 0
                    End If
                End If
            End If
        End If
        Range("G3") = ComboBox1
        Application.EnableEvents = True
    End Sub
    
    Private Sub ComboBox1_DropButtonClick()
        strKontinent = ComboBox1
        booAction = False
    End Sub
    Eine Formel in G3 benötigst du nicht, der Kontinent wird per Code eingetragen.

    Bis später,
    Karin
     
    Beverly, 10. August 2010
    #4
  5. Pumàh Erfahrener User
    Liebe Karin,

    jetzt muss ich mal danke sagen. Du hast in den Code alles gepackt, was ich für mein Projekt so gebrauchen kann.

    Insbesondere Application.EnableEvents kannte ich noch nicht und diesen Befehl kann ich noch in einem anderen Code benutzen und macht mir das alles viel leichter! Ich habe schon lange nach einem Befehl gesucht, der die anderen Events aussetzt, nur dachte ich so etwas gibt es nicht ^^ Kann garnicht oft genug danken!
     
Thema:

Application.Undo bei ComboBoxen möglich?

Die Seite wird geladen...
  1. Application.Undo bei ComboBoxen möglich? - Similar Threads - Application Undo ComboBoxen

  2. Application Guard für Office

    in Microsoft Excel Tutorials
    Application Guard für Office: Application Guard für Office Excel für Microsoft 365 Word für Microsoft 365 PowerPoint für Microsoft 365 Mehr... Weniger...
  3. Progressbar / Application-Anzeige

    in Microsoft Excel Hilfe
    Progressbar / Application-Anzeige: Hallo. Ich habe ein Programm in VBA erstellt, dass Berechnungen vornimmt. Diese Berechnungen dauern manchmal lange, da auch grosse Exceldateien benutzt werden. Nun sieht der Benutzer während das...
  4. UserForm im Vordergrund halten wenn application visible=false

    in Microsoft Excel Hilfe
    UserForm im Vordergrund halten wenn application visible=false: Hallo, Ich habe für meine Kollegen eine kleine Anwendung gebaut, in der über ein Formular Daten eingeben und gespeichert werden können. Wenn die UF initialisiert wird, wird dabei Excell mit:...
  5. Die Methode 'Run' für das Objekt 'Application' ist fehlgeschlagen

    in Microsoft Access Hilfe
    Die Methode 'Run' für das Objekt 'Application' ist fehlgeschlagen: Hallo zusammen, in einer mde rufe ich den Report in einer anderen db (mdb) auf, was unter Access 2007 zu o.a. Fehlermeldung führt. Wie kann ich es lösen, damit die db (Access 2000) auch unter...
  6. HILFE ! Word für Win 95 Application file funktioniert nicht mehr

    in Microsoft Word Hilfe
    HILFE ! Word für Win 95 Application file funktioniert nicht mehr: Hallo, Ich habe ein Problem mit word für windows 95 auf vista rechner! Arbeite schon seit tagen an einem Dokument, und habe gestern letzte änderungen daran gemacht und abgespeichert. Als ich es...
  7. Excel Funktion Undo / Rückgängig machen

    in Microsoft Excel Hilfe
    Excel Funktion Undo / Rückgängig machen: Folgende Frage: In einem Makro werden nach Eingabe von Daten diese Zellen gesperrt. Nun kann man aber das wieder rückgängig machen durch die Undo / Rückgängig Funktion in Excel. Gibt es ein...
  8. Application hang

    in Microsoft Outlook Hilfe
    Application hang: Hallo Seit neuesten friert mein Outlook 2003 ein. Fehler Application hang / Kategorie 101. Was kann hier die ursache sein???
  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