Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1180to1184
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Optionsfelder in Verbindung mit "case"
Otmar
Guten Tag liebe Excelfreunde,
da meine VBA-Kenntnisse getrost als nicht vorhanden eingestuft werden können, bitte ich um Hilfestellung bei folgendem Problem:
Über 4 Optionsfelder in einem Tabellenblatt mit dem Namen „Eingabe“ möchte ich auswählen können, dass die Zahlen der Zellen E5 bis E20 desselben Tabellenblattes entweder mit 0, 1, 2, oder 3 Nachkommastellen dargestellt werden.
Möglicherweise sieht das Makro dann in etwa wie folgt aus:

Sub Nachkommastellen()
Select Case True
Case OptionButton1.Value:    Range("E5:E20").Select
Selection.NumberFormat = "#,##0"
Case OptionButton2.Value:    Range("E5:E20").Select
Selection.NumberFormat = "#,##0.0"
Case OptionButton3.Value:    Range("E5:E20").Select
Selection.NumberFormat = "#,##0.00"
Case OptionButton4.Value:    Range("E5:E20").Select
Selection.NumberFormat = "#,##0.000"
Case Else:	MsgBox “Fehler”
End Select
End Sub

Leider läuft es in dieser Form nicht. Ich vermute mal, dass entweder irgendeine Definition vorab fehlt oder die Terminologie fehlerhaft ist.
Weiß jemand Rat ?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Optionsfelder in Verbindung mit "case"
02.10.2010 16:12:23
Daniel
Hi
in diesem Fall ist Select Case die ungünstige Form der Bedingungsprüfung.
da ein Optionbutten nicht mehrere Werte annehmen kann, sondern nur True und False ist IF ausreichen:
Sub Nachkommastellen()
If OptionButton1 Then Range("E5:E20").Numberformat = "#,##0"
If OptionButton2 Then Range("E5:E20").Numberformat = "#,##0,0"
If OptionButton3 Then Range("E5:E20").Numberformat = "#,##0.00"
If OptionButton4 Then Range("E5:E20").Numberformat = "#,##0.000"
End Sub
zwei HInweise:
1. man arbeitet normalerweise ohne Select, das zeichnet nur der Recorder so auf, ist aber nicht notwendig
2. ein Optionbutton hatt sowieso den Wert TRUE oder FALSE. Deswegen kann man die Abfrage wie oben vereinfachen und muss nicht "If OptionButton1 = True" schreiben.
das ganze lässt sich, wenn du keine VBA Kenntnisse hast, auch über Formeln lösen (allerdings in einer Hilfsspalte):
1. du verwendest die Optionbuttons aus den Formularfeldern und legst über Kontextmenü - Steuerelement formatieren eine Zellverküpfung fest. (zlB. F1) in dieser Zelle wird jetzt angezeigt durch eine Wert von 1-x, welchen Optionbutton du angewählt hast
2. In die Zellen F5:F20 kommnt jetzt folgende Formel:
=Text(E5;"#.##0" & Wahl($F$1;"";",0";",00";",000"))
jetzt kannst du in der Spalte F die Anzahl der Nachkommastellen über die Optionbuttons steuern, ohne Makro nur per Formel.
Gruß, Daniel
Anzeige
AW: Optionsfelder in Verbindung mit "case"
02.10.2010 16:20:35
Otmar
So komme ich klar.
Hab recht schönen Dank, Daniel.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige