Microsoft Excel

Herbers Excel/VBA-Archiv

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

Optionbutton zweimal klicken

Betrifft: Optionbutton zweimal klicken von: Jörg
Geschrieben am: 31.07.2008 17:03:25

Hallo,
ein Problem beschäftigt mich schon seit löngerer Zeit:

Ich habe eine Userform, die über eine Schaltfläche aus einer Tabelle aufgerufen wird. Die Einträge werden in ein Tabellenblatt übertragen.
Das Problem sind Optionbuttons, die bei jedem Aufruf der Userform für die erste Aktivierung doppelt angeklickt werden müssen.

Datei als Anschauung (ich hoffe, das Problem tritt auch beim Test auf)
https://www.herber.de/bbs/user/54244.xls

Im konreten Fall:
Wird die Option von Flachdach auf Satteldach geändert, wird beim ersten Klick "Flachdach" deaktiviert und beim zweiten Klick "Satteldach" aktiviert.

Vielen Dank fürs Versuchen

Jörg

  

Betrifft: Konflikt mit ControlSource von: ChrisL
Geschrieben am: 31.07.2008 17:49:47

Hallo Jörg

Hängt irgendwie mit der Eigenschaft ControlSource zusammen. Keine Ahnung warum/wieso, aber denke auf die Eigenschaft kannst du verzichten.

Gruss
Chris


  

Betrifft: AW: Konflikt mit ControlSource von: Jörg
Geschrieben am: 31.07.2008 18:08:26

Hallo Chris,
auf Controlsource kann ich nicht gut verzichten, da die Datei nur einen kleinen Ausschnitt aus der Ursprungsdatei darstellt, die einige Hundert textboxem und Optionbuttons enthält. Die Eingabe verarbeite ich dann in den Tabellen weiter.
das Problem hat aber nichts mit der Größe der Datei zu tun, da es auch bei der kleinen testversion auftritt.

Wie umgehst Du denn controlsource?

Lieben Gruß
Jörg


  

Betrifft: AW: Konflikt mit ControlSource von: Werner
Geschrieben am: 31.07.2008 18:15:00

Hi,

wenn du die Values in der Tabelle brauchst, verwende das Klick-Ereignis der Optionbutton.

mfg Werner


  

Betrifft: AW: Konflikt mit ControlSource von: ChrisL
Geschrieben am: 31.07.2008 18:29:55

Hallo Jörg

Was Werner vorschlägt sieht in der Praxis z.B. so aus...

Private Sub OptionButton10_Click()
Call UpdateOption
End Sub



Private Sub OptionButton8_Click()
Call UpdateOption
End Sub



Private Sub OptionButton9_Click()
Call UpdateOption
End Sub



Private Sub UpdateOption()
With Worksheets("Tabelle1")
    .Range("B2:B4") = False
    If OptionButton8 Then .Range("B2") = True
    If OptionButton9 Then .Range("B3") = True
    If OptionButton10 Then .Range("B4") = True
End With
End Sub



N.b. wenn du ein grösseres Eingabeformular hast, dann wäre es u.U. sinnvoll sämtlich Daten erst ganz am Schluss in die Tabelle zu übertragen.

Gruss
Chris


  

Betrifft: AW: Konflikt mit ControlSource von: Jörg
Geschrieben am: 01.08.2008 07:54:16

Hallo,
erstmal vielen Dank für die Vorschläge. Werde mal sehen, wie ich dass umsetzen kann.
Mit dem Initialisieren habe ich es auch schon probiert, allerdings ergibt sich das Problem, dass die ausgewählten Werte gespeichert und beim nächsten Öffnen wieder vorhanden sein sollen. Es gab ein paar unfreundliche Bemerkungen, als die jedes Mal wieder weg waren ;-)

Darf ich davon ausgehen, dass das beschriebene Grundproblem auch bei Euch aufgetaucht ist (sprich Buttons doppelt anklicken)?

Lieben Gruß
Jörg


  

Betrifft: AW: Konflikt mit ControlSource von: ChrisL
Geschrieben am: 01.08.2008 11:43:53

Hallo Jörg

Darf ich davon ausgehen, dass das beschriebene Grundproblem auch bei Euch aufgetaucht ist (sprich Buttons doppelt anklicken)?

Antwort: ja


Zur Nebendiskussion... Wollte nicht die Initialisierung ansprechen, sondern die Problematik, dass wenn du Werte laufend überträgst und speicherst, es kaum eine Möglichkeit gibt, einen fehlerhaften Arbeitsschritt rückgängig zu machen. Also ich würde die ganze Eingabemaske durch machen, meine Eingaben prüfen, dann Eingabe speichern/übertragen. War auch nur als Denkanstoss gedacht, schlussendlich ist es Geschmacksache.

Gruss
Chris


  

Betrifft: setz beim Initialize alle auf False ... von: Matthias L
Geschrieben am: 01.08.2008 06:31:48

Hallo

Setz doch beim Initialisieren alle Button auf False, dann klappts auch.


Private Sub UserForm_Initialize()

 Me.OptionButton10.Value = False
 Me.OptionButton9.Value = False
 Me.OptionButton8.Value = False

End Sub



Gruß Matthias


 

Beiträge aus den Excel-Beispielen zum Thema "Optionbutton zweimal klicken"