Clever-Excel-Forum

Normale Version: Optionbutton NICHT aktivieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
PHP-Code:
Private Sub OptionButton4_Click() 
 
    Call Change_Tool
     Range
("A3").EntireRow.Hidden True           'Ausblenden
     Range("A14:A16").EntireRow.Hidden = False     '
Einblenden
     Range
("B2") = "F"
 
    Range("C4").Select
End Sub 

PHP-Code:
Private Sub Change_Tool() 'Aktuelle Werte sichern im Blatt LAST
Meldung = MsgBox("Durch die Änderung der Bearbeitung werden die aktuellen Werte gesichert." & vbNewLine & _
                   "" & vbNewLine & _
                   "Anschließend werden die Zellen gelöscht für neue Berechnungen." & vbNewLine & _
                   "Diesen Vorgang kann man nicht rückgängig machen." & vbNewLine & _
                   "Die zuvor gesicherten Werte werden überschrieben.", vbYesNo, "Aktuelle Werte sichern")
    If Meldung = vbNo Then
       Exit Sub
     ElseIf Meldung = vbYes Then
       For x = 1 To 16
           Worksheets("Last").Cells(x, 3) = Worksheets("Schnittdaten").Cells(x, 3) 
       Next x 

Folgender Ablauf:
Der OptionButton 1 ist aktiv. Jetzt klicke ich auf den OptionButton 4.
Wenn ich nun in der Sub Change_Tool die Meldung mit NEIN bestätige, wird dennoch der OptionButton 4 auf Value = True gesetzt.
Ich möchte aber, dass bei NEIN der OptionButton 1 aktiv bleibt, also nichts passiert.

Ich habe auch das vbYesNoCancel mal probiert, aber auch bei Klick auf Abbrechen wird dennoch der OB 4 auf True gesetzt.
Wie kann man das machen, dass bei NEIN nichts passiert?
Hallo, :19:

dann schreibe es so: :21:

Code:
If Meldung = vbNo Then
    Me.OptionButton4.Value = False
    Exit Sub

Wenn es nicht klappt - Beispieldatei hochladen. Exclamation
Guten Morgen,

ich habe es mal so eingesetzt.
Das funktioniert jetzt erstmal gut, aber dafür ist jetzt KEIN Optionbutton mehr auf TRUE.

Eigentlich müsste der OB 1 sichtbar aktiviert bleiben.
Aber durch Klick auf den OB 4, auch wenn ich dann NEIN sage,
bedeutet es, dass der OB 1 seinen Status TRUE verloren hat.

Ich habe insgesamt 6 OB.
Wie kann ich beim Verlassen des gerade aktiven OB durch Klick auf einen anderen OB
und der Antwort NEIN, es hinbekommen,
dass der zuletzt aktive OB auch aktiv bleibt?

Hast du dafür auch eine Idee?

Gruß Achim
Hallo, :19:

wie gesagt - lade eine Beispieldatei hoch und erkläre was, wann, wo passieren soll, bzw. nicht passieren soll. :21:
Auch Hallo,

mal ein umständlicher Weg, wie es gehen könnte.

Code:
Option Explicit
Private bolYesNo As Boolean
Private objAktiv As Object


Private Sub OptionButton1_Click()
If Not bolYesNo Then Call prcAchim
End Sub


Private Sub OptionButton2_Click()
If Not bolYesNo Then Call prcAchim
End Sub


Private Sub OptionButton3_Click()
If Not bolYesNo Then Call prcAchim
End Sub

Sub prcAchim()
  Dim Meldung As Variant

  Meldung = MsgBox("Durch die Änderung der Bearbeitung werden die aktuellen Werte gesichert." & vbNewLine & _
              "" & vbNewLine & _
              "Anschließend werden die Zellen gelöscht für neue Berechnungen." & vbNewLine & _
              "Diesen Vorgang kann man nicht rückgängig machen." & vbNewLine & _
              "Die zuvor gesicherten Werte werden überschrieben.", vbYesNo, "Aktuelle Werte sichern")
  If Meldung = vbNo Then
     bolYesNo = True
     objAktiv.Value = True
     bolYesNo = False
     Exit Sub
  Else
     Set objAktiv = ActiveControl
  End If
End Sub


Private Sub UserForm_Initialize()
  bolYesNo = True
  OptionButton1 = True
  Set objAktiv = OptionButton1
  bolYesNo = False
End Sub

Eigentlich sollte es dem Anwender bewußt sein, was er auslöst, wenn er einen Optionbutton auswählt.
Hallo Stefan,

ich habe es nicht umsetzen können.
Weiter unten steht eine Sub für eine Userform.
In dieser kleinen Datei habe ich keine Userform.
Huh  Huh  Huh
Hallo Achim,

Case hat dich ja schon gebeten, eine Beispieldatei hier hoch zuladen. Dem kann ich mich nur anschließen.
Ich habe mein kleines Programm komplett umgebaut, so dass es jetzt ohne OB geht.
Dennoch vielen Dank für die Tipps und Hilfen.
Wünsche allen ein schönes Weekend.
Gruß Achim
@case

Die Antwort war:
Statt

Code:
If Meldung = vbNo Then
    Me.OptionButton4.Value = False
    Exit Sub

Code:
OptionButton4.Value = Meldung = vbYes