Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1356to1360
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
Inhaltsverzeichnis

Informationen mit OptionButtons festlegen

Informationen mit OptionButtons festlegen
07.04.2014 13:30:56
Andreas
Hallo zusammen
Ich habe im Excel eine Tabelle, die für eine Auswertung gebraucht werden soll.
Der Benutzer soll jetzt mit Hilfe von OptionButtons festlegen, zu wieviel Prozent das Ziel erreicht ist.
Jetzt zu meinem Problem:
Ist es möglich den erreichten Prozentanteil einer Spalte in eine Zelle zu schreiben?
Der folgende Code würde funktionieren, jedoch würde sich dieser dann in die länge ziehen, da jeder einzelne Button angesteuert werden muss und es von diesen sehr viele gibt.
If OptionButton1.Value = True Then
Range("X4").Value = "0"
End If
If OptionButton2.Value = True Then
Range("X4").Value = "0.25"
End If
Danke schon im vorraus :)

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Informationen mit OptionButtons festlegen
07.04.2014 14:08:37
Hajo_Zi
arbeite mit select Case.
Option Explicit
Sub test()
Select Case Range("X4")
Case 0
OptionButton1.Value = True
Case 0.25
OptionButton2.Value = True
End Select
End Sub

AW: Informationen mit OptionButtons festlegen
07.04.2014 14:31:11
Oberschlumpf
HaJo, dann muss er ja zuerst einen Wert in X4 eintragen, damit dann ein OptionButton per Code ausgewählt wird.
Aber Andreas will doch zuerst einen OptionButton anklicken, und dann, in Abhängigkeit des gewählten OptButtons soll dann in X4 per Code der entsprechende Wert eingetragen werden.

Anzeige
AW: Informationen mit OptionButtons festlegen
07.04.2014 14:35:34
Andreas
Ja genau, es ist so wie es Oberschlumpf sagt.

AW: Informationen mit OptionButtons festlegen
07.04.2014 14:39:10
Hajo_Zi
dann bleibt Dir nur Deine Variante da Du mit jedem Optionsbutton was anderes eintragen willst.
Es wurde kein Logik mitgeteilt für Nummer und Wert, aus 2 Werten konnte das nicht abgeleitet werden.
Gruß Hajo

ich konnte die Grundfrage doch ableiten...
07.04.2014 14:40:56
Oberschlumpf
...ja ja ja..das konnte ich! :-)

AW: Informationen mit OptionButtons festlegen
07.04.2014 14:47:48
Oberschlumpf
Hi Andreas
ich versuch mich nun seit fast ca 1 Std an deiner Frage.
Aber leider finde ich keine Möglichkeit, deine vielen OptionButtons mit z Bsp einer Schleife so abzufragen, dass es nicht erforderlich ist, für jeden einzelnen Opt'button einen Wert zuweisen zu müssen.
Ich kann zwar eine Schleife bauen, ungefähr so

For Each alle Opt'Buttons In Tabelle1
If Opt'Button = True Then
hier is das Problem
jetzt weiß der Code zwar, welcher Opt'Button = True ist,
aber der Code weiß nicht, welchen Wert er jetzt in X4 eintragen muss
das kann der Code auch nicht wissen, weil, es hat ihm ja noch keiner gesagt :-)
End If
Next

(der obige Code funzt natürlich so nicht in Excel, aber ungefähr so müsste eine Schleife programmiert werden)
Grundsätzlich hat HaJo in seinem 2. Beitrag aber recht.
Du MUSST die %-Werte dem Code händisch mitteilen.
Entweder, du bleibst bei deiner Variante, oder du versuchst, meinen Code aus dieser Datei zu übernehmen
https://www.herber.de/bbs/user/90022.xls
In meiner Datei musst du aber noch I4 gegen X4 ändern, da ich keine Lust hatte, nach jedem Testlauf zur Zelle X4 zu "wandern".
Mein Code durchläuft in Tabelle1 alle verwendeten Controls.
Wenn Controltyp = OptionButton, und Wert = True, dann ruft Code die Function fcProcent auf.
In Abhängigkeit des Namens von OptionButton wird in der Function der von dir eingetragene Wert der Zelle I4 zugewiesen - wie gesagt, nicht vergessen, I4 gegen X4 zu tauschen.
Du musst also in der Function noch alle anderen und richtigen Werte für den jeweiligen Opt'Button eintragen.
Voraussetzung: Alle Opt'Buttons müssen heißen wie folgt:
OptionButton1,OptionButton2,OptionButton3,... usw
Hilfts?
Ciao
Thorsten

Anzeige
AW: Informationen mit OptionButtons festlegen
07.04.2014 15:44:17
Andreas
Hi Thorsten
Danke für diesen Lösungsvorschlag, ich werden ihn einmal versuchen umzusetzen

AW: Informationen mit OptionButtons festlegen
07.04.2014 16:38:57
Andy
Halllo Thorsten
Danke für deine Hilfe. Diese hat uns bereits ein Stück weitergebracht. Jetzt noch eine Zusatzfrage:
Stell Dir vor, Du hättest 7 Zeilen immer mit je 5 OptionButtons. Die OptionButtons müssen wieder wie zuvor eine Ausgabe erzeugen, jedoch pro Zeile eine Ausgabe.
OptionButton1, OptionButton2, OptionButton3, OptionButton4, OptionButton5 => Ausgabe1 in %
OptionButton6, OptionButton7, OptionButton8, OptionButton9, OptionButton10 => Ausgabe2 in %
OptionButton11, OptionButton12, OptionButton13, OptionButton14, OptionButton15 => Ausgabe3 in %
OptionButton16, OptionButton17, OptionButton18, OptionButton19, OptionButton20 => Ausgabe4 in % OptionButton21, OptionButton22, OptionButton23, OptionButton24, OptionButton25 => Ausgabe5 in %
OptionButton26, OptionButton27, OptionButton28, OptionButton29, OptionButton30 => Ausgabe6 in %
OptionButton31, OptionButton32, OptionButton33, OptionButton34, OptionButton35 => Ausgabe7 in %
Total = Summe(Ausgabe1+Ausgabe2+Ausgabe3+Ausgabe4+Ausgabe5+Ausgabe6+Ausgabe7)/7 in %
Folgende Gemeinsamkeiten sind vorhanden:
OptionButton 1,6,11,16,21,26,31 => Ausgabe 0%
OptionButton 2,7,12,17,22,27,32 => Ausgabe 25%
OptionButton 3,8,13,18,23,28,33 => Ausgabe 50%
OptionButton 4,9,14,19,24,29,34 => Ausgabe 75%
OptionButton 5,10,15,20,25,30,35 => Ausgabe 0%
Kann man somit Deinen Code vereinfachen, für unser Vorhaben?
Code aus Bsp:
Sub sbOptionButton()
Dim shpBox As Shape
Dim liIdx As Integer
liIdx = 1
For Each shpBox In ActiveSheet.Shapes
If Sheets(1).OLEObjects("OptionButton" & liIdx).Object.Value = True Then
If shpBox.Type = msoOLEControlObject Then
If InStr(shpBox.Name, "Option") > 0 Then
Range("H8").Value = fcProcent("OptionButton" & liIdx)
End If
End If
Else
liIdx = liIdx + 1
End If
Next
End Sub
Function fcProcent(optionname)
Select Case optionname
Case "OptionButton1"
fcProcent = "0%"
Case "OptionButton2"
fcProcent = "25%"
Case "OptionButton3"
fcProcent = "50%"
Case "OptionButton4"
fcProcent = "75%"
Case "OptionButton5"
fcProcent = "100%"
End Select
End Function

Freundliche Grüsse und danke für die supper schnelle Unterstützung
Andy

Anzeige
AW: Informationen mit OptionButtons festlegen
07.04.2014 17:18:24
Oberschlumpf
Hi Andreas oder Andy
...Kann man somit Deinen Code vereinfachen, für unser Vorhaben? ...
Kann man vielleicht.
Aber zeig mir erst mal eine Bsp-Datei mit 7x5=35 OptionButtons.
Ich werde die Datei nicht nachbauen.
Aber wenn du sie mir lieferst, kann ich versuchen, meinen Code anzupassen.
Was bedeutet Ausgabe1, Ausgabe2, Ausgabe3, usw?
Sind damit die jeweiligen Zellen gemeint, in denen ein %-Wert erscheinen soll?
Aber das werde ich bestimmt verstehen, wenn du die Bsp-Datei uploadest.
Ciao
Thorsten

AW: Informationen mit OptionButtons festlegen
08.04.2014 07:40:54
Andreas
Guten Morgen Thorsten
Hier die Beispiel Datei
https://www.herber.de/bbs/user/90027.xlsm
In den Zellen X.. sollen jeweils die erreichten Prozent angezeigt werden, also in der Zeile 4 soll in der Zelle X4 die Prozent angezeigt werden, in der Zeile 5 in X5 usw.
Gruss

Anzeige
AW: Informationen mit OptionButtons festlegen
08.04.2014 11:55:27
Oberschlumpf
Hi Andreas
Danke schon mal für die Testdatei, die eigtl schon sehr gut aussieht.
Aber leider kann ich die Opt'Buttns nicht anklicken.
Is nich deine Schuld!
Ich nutze noch Excel 2003. Da können nicht alle Befehle/Formate, wie ab Excel 2007 verwendet, genutzt werden, weil Excel 2003 die noch nicht kennt.
Kannst du bitte genau diese Datei noch mal unter Speichern unter, Dateityp = xls, eben als Excel 2003-Datei abspeichern und hier zeigen?
Ich hab zwar noch nix tun können, bin aber trotzdem fast sicher, dass ich mit dem angepassten Code helfen kann.
Wie gesagt, die Datei bitte als xls-Datei und nicht als xlsm-Datei zeigen.
Danke
Ciao
Thorsten

Anzeige
AW: Informationen mit OptionButtons festlegen
08.04.2014 13:28:52
Andreas
Datei:

Die Datei https://www.herber.de/bbs/user/90036.xls wurde aus Datenschutzgründen gelöscht


Ich habe noch ausprobiert und bin zu folgendem Code gekommen. Was sagst du dazu?
Option Explicit
Sub sbOptionButton()
Dim shpBox As Shape
Dim liIdx As Integer
liIdx = 1
For Each shpBox In ActiveSheet.Shapes
If Tabelle1.OLEObjects("OptionButton" & liIdx).Object.Value = True Then
If shpBox.Type = msoOLEControlObject Then
If InStr(shpBox.Name, "Option") _
And liIdx = 6 And liIdx = 11 And liIdx = 16 And liIdx = 21 And liIdx = 26 And liIdx = 31 Then
Range("X11").Value = fcProcent("OptionButton" & liIdx)
End If
End If
End If
liIdx = liIdx + 1
If liIdx = 36 Then
liIdx = 1
End If
Next
End Sub
Function fcProcent(optionname)
Select Case optionname
Case "OptionButton1"
fcProcent = "0%"
Case "OptionButton2"
fcProcent = "25%"
Case "OptionButton3"
fcProcent = "50%"
Case "OptionButton4"
fcProcent = "75%"
Case "OptionButton5"
fcProcent = "100%"
Case "Optionbutton6"
fcProcent = "0%"
Case "OptionButton7"
fcProcent = "25%"
Case "OptionButton8"
fcProcent = "50%"
Case "OptionButton9"
fcProcent = "75%"
Case "OptionButton10"
fcProcent = "100%"
Case "OptionButton11"
fcProcent = "0%"
Case "OptionButton12"
fcProcent = "25%"
Case "OptionButton13"
fcProcent = "50%"
Case "OptionButton14"
fcProcent = "75%"
Case "OptionButton15"
fcProcent = "100%"
Case "OptionButton16"
fcProcent = "0%"
Case "OptionButton17"
fcProcent = "25%"
Case "OptionButton18"
fcProcent = "50%"
Case "OptionButton19"
fcProcent = "75%"
Case "OptionButton20"
fcProcent = "100%"
Case "Optionbutton21"
fcProcent = "0%"
Case "OptionButton22"
fcProcent = "25%"
Case "OptionButton23"
fcProcent = "50%"
Case "OptionButton24"
fcProcent = "75%"
Case "OptionButton25"
fcProcent = "100%"
Case "OptionButton26"
fcProcent = "0%"
Case "OptionButton27"
fcProcent = "25%"
Case "OptionButton28"
fcProcent = "50%"
Case "OptionButton29"
fcProcent = "75%"
Case "OptionButton30"
fcProcent = "100%"
Case "OptionButton31"
fcProcent = "0%"
Case "OptionButton32"
fcProcent = "25%"
Case "OptionButton33"
fcProcent = "50%"
Case "OptionButton34"
fcProcent = "75%"
Case "OptionButton35"
fcProcent = "100%"
End Select
End Function

Gruss Andreas

Anzeige
AW: Informationen mit OptionButtons festlegen
08.04.2014 15:08:06
Oberschlumpf
Hi Andreas
hier erst mal meine Datei
https://www.herber.de/bbs/user/90037.xls
nun ein paar Infos
Wie du in der neuen Datei siehst, stehen in der Function fcProcent nicht mehr alle einzelnen Cases untereinander, sondern ich habe sie in Gruppen zusammengefasst.
Aus deinen bisherigen Beiträgen war nicht klar, dass sich die %-Werte immer wiederholen.
So kann man nun aber alle OptionButtons, die 0% zurückgeben sollen, unter eine Case-Anweisung zusammenfassen.
So gilt das auch für 25-100%.
Dann deine Frage zu deinem neuen Code mit den vielen If's.
Ich hab das so gelöst, dass beim Aufruf der Sub sbOptionButton, ausgelöst durch Klick in OptionButton1-35, die jeweils relevante Zeile, in die der %-Wert angegeben werden soll, mit übergeben wird.
So kann man sich das Überprüfen mit den vielen If's sparen.
Nun hab aber ICH noch mal eine Frage.
In deiner Datei sehe ich im Klick-Ereignis von Opt'Button1-5, dass du immer viele andere Opt'Buttons deaktivierst - .Enabled = False
Diesen ganzen Code hab ich erst mal auskommentiert, weil ic damit nichts anfangen konnte.
Ist das von dir tatsächlich so gewollt, wenn für "Umfang & Relevanz" OptionButton1 angeklickt, dass dann für "Integrität" wirklich nur OptionButton6 (0%) angeklickt werden kann und alle anderen OptionButtons (7-10) dürfen nicht anklickbar sein?
Oder gehört all das noch zu deinem "Ausprobieren-mal-sehen-was-passiert-Code" ?
Wenn all das aber genau so von dir gewünscht, dann sollte man das Ganze nicht so lösen, wie für Opt'Button1-5, sondern besser auch in einer Schleife.
Sonst hast du richtig viel Tipparbeit, was das Ganze aber auch nicht übersichtlich macht.
Hilfts denn, meine Datei?
Ciao
Thorsten

Anzeige
AW: Informationen mit OptionButtons festlegen
09.04.2014 08:48:57
Andy
Hallo Thorsten
Ja das muss so sein, da die oberste Zeile dieses Bewertungsdokuments ausschlaggebend für die folgenden Bewertungskriterien ist. Somit können die weiteren Bewertungskriterien nur linear (gleichgut) oder schlechter bewertet werden. Dies ist den Personen, welche dieses Dokument benutzen werden bekannt, jedoch verfolgen wir den Ansatz "keep it simple and stupid".
Den Code für die Prozent Anzeige haben wir inzwischen verstanden, wie wir jedoch unseren Code in eine Schlaufe einbauen können, um vorgegebene OptionButtons zu deaktivieren, finden wir nicht heraus. Ich hätte gern, nur einen Ansatz, nicht gleich eine Lösung, damit ich es auch verstehe. :) Danke Schön!
Gruss
Andy

Anzeige
AW: Informationen mit OptionButtons festlegen
09.04.2014 11:17:16
Oberschlumpf
Moin Andy
Mist Mist Mist!!!
Ich hatte es geahnt, dass das Deaktivieren von Opt'Buttons erforderlich ist :-/
Ich hatte nur bis eben den Sinn noch nicht verstanden.
Aber dank deiner Erklärung weiß nun auch ich, wozu das gut ist.
Ich versuch mein Glück, kann aber nix versprechen, weil es ja eben ganz viele Opt'Buttons sind, bei denen es gilt, auch ganz viel beachten zu müssen...mist :-/
(so zumindest bis jetzt meine Gedanken dazu)
Ich weiß auch nicht, ob ich eine Lösung oder nur einen Ansatz dazu schon heute oder morgen oder wann auch immer schaffe.
Also erwarte keine Wunder :-)
Ciao
Thorsten
ps
natürlich solltest auch du weiterhin selbst versuchen, eine Lösung zu finden.
Und derjenige, der von uns schneller ist, zeigt dann hier sein Ergebnis

Anzeige
AW: Informationen mit OptionButtons festlegen
10.04.2014 08:18:59
Andreas
Guten Morgen Thorsten
So, nach vielen Versuchen hat es endlich geklappt! Die Abfrage ist ähnlich gebaut wie deine zu den Prozentangaben. Ich hoffe das sieht so in Ordnung aus :)
https://www.herber.de/bbs/user/90077.xls
Gruss
Andreas

AW: Informationen mit OptionButtons festlegen
10.04.2014 08:39:02
Oberschlumpf
Moin Andreas mit Rohr
Bist du auch DER Andreas ohne Rohr, der diesen Thread erstellt hat?
Erste mal egal, ob ja oder nein, auf jeden Fall bist du mit deiner Lösung viel weiter - nämlich fast am Ziel - als ich mit meiner.
Ich tüftel nämlich noch immer dran rum :-)
Auch, wenn ich nicht der Fragende bin, ist mir das hier aufgefallen:
Umfang & Relevanz = 50% ausgewählt und in Spalte X angezeigt
Integrität = auch 50% ausgewählt und in Spalte X angezeigt
wenn nun aber
Umfang & Relevanz geändert auf 0%
dann sind zwar alle "richtigen" Opt'Button wieder deaktiviert und nicht ausgewählt, aber...
...für Integrität wird in Spalte X trotzdem weiter 50% angezeigt.
Das gilt auch für alle anderen Opt'Button, die unterhalb von Umfang & Relevanz stehen.
Ich denk, dass kannst du korrigieren, oder?
(sorry, ich bin froh, dass ich diese "Aufgabe" los bin - sonst hätt ich mich an der Korrektur versucht)
Ansonsten aber: SUPER LEISTUNG!
Wie gesagt, ich hab es nicht geschafft, das eigentliche Problem zu lösen - du schon!
Ciao
Thorsten

AW: Informationen mit OptionButtons festlegen
10.04.2014 11:16:02
Andreas
Ja ich bin auch der Andreas ohne Rohr :)
Den Code habe ich auch nur durch deinen Anfang hinbekommen, sonst wäre ich verzweifelt ;)
Das mit den Prozent ist mir auch aufgefallen, hatte aber 2. Priorität.
Dieses Problem habe ich mal mit folgendem Code gelöst:
    Do Until liIdxx1 = 12
If Range("X" & liIdxx1).Text = "100%" Then
Range("X" & liIdxx1).Value = ""
ElseIf Range("X" & liIdxx1).Text = "75%" Then
Range("X" & liIdxx1).Value = ""
ElseIf Range("X" & liIdxx1).Text = "50%" Then
Range("X" & liIdxx1).Value = ""
ElseIf Range("X" & liIdxx1).Text = "25%" Then
Range("X" & liIdxx1).Value = ""
End If
liIdxx1 = liIdxx1 + 1
Loop
Das wird in die Sub But1() geschrieben, bei der Sub But2() fällt dann der Teil mit den 25% weg.
usw.
Gruss
Andreas

AW: Informationen mit OptionButtons festlegen
10.04.2014 11:43:10
Oberschlumpf
Hi Andreas mit und ohne Rohr...hehe
Na, da haben doch auch mal WIR zwei Beide gezeigt, WOZU ein Forum da ist!
Nämlich für TEAMWORK!
Nachdem ich Problem1 gelöst habe, konntest du Problem2 lösen...oh yeah...soo solls sein :-)
Ciao
Thorsten (mit+ohne irgdwas :-D )

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige