OptionButton, welcher ist aktiviert?

Hallo,

ich habe eine Gruppe von OptionButtons und möchte abfragen, welcher Button aus dieser Gruppe aktiviert ist. Wie kann ich das machen? Ich möchte nicht für jeden OptionButton eine if…then Anweisung nutzen.
Wie kann ich eine ganze Gruppe von CheckBoxen ansprechen?

VIELEN DANK!

Hallo,

Hallo,

ich habe eine Gruppe von OptionButtons und möchte abfragen,
welcher Button aus dieser Gruppe aktiviert ist. Wie kann ich
das machen? Ich möchte nicht für jeden OptionButton eine
if…then Anweisung nutzen.
Wie kann ich eine ganze Gruppe von CheckBoxen ansprechen?

Via einer For Each Schleife

 Dim C As Control
 For Each C In Me.Controls
 If TypeOf C Is OptionButton Then
 'Hier haben wir alle Optionbutton's
 If C.Value Then MsgBox "Optionbutton " & C.Caption & " ist selektiert!"
 End If
 Next

VIELEN DANK!

Nichts zu danken :smile:

MfG Alex

Hallo MK,

VB? Welches? Version?
VBA? Welches? Version? Checkboxen und Optionsbutton, aus welcher Symbolleiste?

Gruß
Reinhard

Moin, marienkaefer,

falls Du das öfters brauchst:

Private Function OptionSelected(Options As Object) As Integer

'----------------------------------------------------------------
' gibt den Index der im übergebenen Options-Array
' selektierten Option zurück
'----------------------------------------------------------------
 
 Dim ctl As Control
 Dim Index As Integer
 ' Vorbelegen, falls nichts selektiert ist
 Index = -1
 ' gewählte Option suchen
 For Each ctl In Options
 If ctl.Value = True Then
 Index = ctl.Index
 Exit For
 End If
 Next ctl
 OptionSelected = Index
End Function

Wie kann ich eine ganze Gruppe von CheckBoxen ansprechen?

Für Checkboxen ist diese Funktion nicht zu gebrauchen, da können ja mehrere gewählt sein.

Gruß Ralf

Hallo,

vielen lieben Dank!
Bei den CheckBoxen hab ich mich schlecht ausgedrückt. Ich habe mehrere CheckBoxen und habe jeweils GroupName als „FM“ definiert. Kann ich jetzt z.B. alle CheckBoxen dieser Gruppe auf False setzen?
Danke!

Marie

Moin, Marie,

immoment fehlt mir die Orientierung, weil ich gar keine Eigenschaft Groupname finde. Hast Du VisualBasic oder ist das Excel VBA?

In VisualBasic ist der Frame nur ein graphisches Element, er stellt keine Gruppierung dar. Deshalb mache ich aus solchen Elementen grundsätzlich ein Array, das lässt sich dann mit Schleifenbefehlen ansprechen.

Gruß Ralf

Hallo Ralf,

hab es mittlerweile hinbekommen.
Ganz lieben Dank trotzdem!

Hallo Ralf,

Hast Du VisualBasic oder
ist das Excel VBA?

mein Eindruck ist, die Dame beantwortet solche Frage nicht.
Äh, Marienkäfer können doch auch männlich sein?
Ich erkannte bislang nur zwei Indizien für w :smile:

In VisualBasic ist der Frame nur ein graphisches
Element, er stellt keine Gruppierung dar. Deshalb mache ich
aus solchen Elementen grundsätzlich ein Array, das lässt sich
dann mit Schleifenbefehlen ansprechen.

*hmmh* Lassen wir mal Groupname weg, kenne ich irgednwie aber passt nicht zu dem was sagen will.

Jetzt ungetestet, nur aus dem Gedächtnis.
In Excel-Vba wenn du da für x Steuerelemente EINEN gemeinsamen Code haben willst, mußt du ein Klassenmodul erstellen, dann geht’s.

Ich hab ja nur VB5.0. Aber selbst da, wenn man da ein Steuerelement in eine Form einfügt, dann kopiert und x-mal einfügt hat man schon das Klassenmodul automatisch.

D.h. man schreibt EINEN Code und wenn Steuerelement Nr 5 gedrückt wird so wird dieser Code gestartet und man hat die Information 5.
So wie „target“ bei Worksheet_Change in XL-Vba.

Wie gesagt, Gedächtnis, vielleicht verwechsle ich hier auch was völlig.

Gruß
Reinhard

Hi Marie,

hab es mittlerweile hinbekommen.

es ist guter Brauch, die Lösung hier zu posten - auch die Antworter möchten noch was lernen.

Gruß Ralf

Ich arbeite im Moment mit Excel VBA, dort gibt es die Eigenschaft GroupName. Ich habe jetzt einfach
for each ctl in Me.Controls
if typeof ctl is CheckBox then
if ctl.groupname=„Nutzung“ then

end if
end if
next ctl
genutz, vielleicht gibt es noch eine elegantere Möglichkeit, aber so funktionierts erstmal.
Danke
Marie

Hallo Marie,

erstmal ein dickes Lob daß du dich meldest.

Dann gleich nen Anschiß :smile:, hättest du das gleich gesagt hätte Alex nicht für den Papierkorb gearbeitet und Ralf auch nicht.
Naja, die sind ja jung und werden es noch lernen. :smile:)
Ich habe mir nicht den geringsten Kopp um deine Problem gemacht, das mache ich erst dann wenn der Anfrager rausrückt um was es geht.

Als Beispiel. Aus deinem Code erkenne ich deine Steuerelemte hast du in einer Userform. Richtig?
Mit diesem Wissen kann ich loslegen und versuchen dir zu helfen.

Andersrum, du sagst du hast da verschiedene Steuerelemente in Excel.
Schön und gut. Da kommt von mir nur die Nachfrage aus welcher Symbolleiste (jaja, 2007 ist anders) und wo sind sie, Tabelle oder Userform.

Dieses, mein, Nichtsofortantworten sondern erst nachfragen und erst was tun wenn eine Antwort kommt finde ich Klasse.

Ähem Marie, nimms bitte bitte nicht persönlich, war grad in Plauder- bzw. Ausk…laune *gg*

Gruß
Reinhard

[ot] Einrückungen
Moin, Marie,

noch ein Tipp am Rande: Die Einrückungen bleiben erhalten, wenn das pre-Tag verwendet wird (ist in der „Hilfe zur Anwendung der HTML-Tags“ beschrieben):

 for each ctl in Me.Controls
 if typeof ctl is CheckBox then
 if ctl.groupname="Nutzung" then
 ...
 end if
 end if
 next ctl

vielleicht gibt es noch eine elegantere Möglichkeit

Bassd scho.

Gruß Ralf

Hallo Drambeldier,

neulich hatte ich eine direkte Anfrage und wollte mit umfangreichem Code antworten. Das hat natürlich nur Sinn, wenn die Einrückungen erhalten bleiben. Aber ums Verrecken funktionierte der Pre-Tag bei mir nicht.
Im Rahmen einer anderen Anfrage wandte ich mich (mit der Problembeschreibung als Nebensatz) auch an die www-Hotline. Antwort dazu: es ist bisher nix bekannt, daß der Pre-Tag nicht funktineren sollte.

Dies nur zu Deiner Information.

M.

Hallo Marie,

Hallo Reinhard,

erstmal ein dickes Lob daß du dich meldest.

Dann gleich nen Anschiß :smile:, hättest du das gleich gesagt
hätte Alex nicht für den Papierkorb gearbeitet und Ralf auch
nicht.

Sind wir das nicht gewöhnt? Man präsentiert eine Lösuzng auf Verdacht, weil sie unter VBA und VB laufen sollte und bekommt nicht einmal eine Antwort :confused: Genau aus diesem Grunde poste ich mittlerweile immer weniger!
Konsequenz ist das vlt. jemand eine Antwort sucht, keiner die Lösunmg weiss und er nun der dumme ist, der weiter probiert obwohl er vlt. nicht einmal etwas dafür kann!
Zu dem habe ich nun gelesen, das die SE gruppiert sind. Sicherlich geht meine Variante mit einer erneuten UnterAbfrage, aber umstaendlich ist das schon. Koennte man viel einfacher haben. Aber warum soll man die Lösung hier posten, wenn eh weder ein Danke geschweige denn eine Antwort kommt .

Naja, die sind ja jung und werden es noch lernen. :smile:)

So jung nun wieder auch nicht *gg*

Ich habe mir nicht den geringsten Kopp um deine Problem
gemacht, das mache ich erst dann wenn der Anfrager rausrückt
um was es geht.

Das habe ich auch nicht, alldiweil das ein ganz simples Problem ist, wo man die Lösung auch über google finden würde *gg*

Als Beispiel. Aus deinem Code erkenne ich deine Steuerelemte
hast du in einer Userform. Richtig?
Mit diesem Wissen kann ich loslegen und versuchen dir zu
helfen.

Andersrum, du sagst du hast da verschiedene Steuerelemente in
Excel.
Schön und gut. Da kommt von mir nur die Nachfrage aus welcher
Symbolleiste (jaja, 2007 ist anders) und wo sind sie, Tabelle
oder Userform.

Spielt doch in dem Falle keine Rolle, alldiweil alle SE über eine For Each Schleife abgefragt werden :wink: Oder irre ich mich nun?

Dieses, mein, Nichtsofortantworten sondern erst nachfragen und
erst was tun wenn eine Antwort kommt finde ich Klasse.

Ähem Marie, nimms bitte bitte nicht persönlich, war grad in
Plauder- bzw. Ausk…laune *gg*

Nicht nur du *gg*

Gruß
Reinhard

MfG Alex

Hallo Alex,

Dann gleich nen Anschiß :smile:, hättest du das gleich gesagt
hätte Alex nicht für den Papierkorb gearbeitet und Ralf auch
nicht.

Sind wir das nicht gewöhnt? Man präsentiert eine Lösuzng auf
Verdacht, weil sie unter VBA und VB laufen sollte und bekommt
nicht einmal eine Antwort :confused: Genau aus diesem Grunde poste ich
mittlerweile immer weniger!

jeder reagiert anders auf „Eintagsfliegen“ die z.B. nach einer Werbung im Fernsehen hier reinflattern.
Zur „Abwehr“ habe ich mir seit einem Jahr angewöhnt „nachzufragen“. Und wenn ich da den Marienkäfer „lobe“ wegen der Rückantwoort, so ist das ernst gemeint :smile:

Konsequenz ist das vlt. jemand eine Antwort sucht, keiner die
Lösunmg weiss und er nun der dumme ist, der weiter probiert
obwohl er vlt. nicht einmal etwas dafür kann!

? Wenn keiner eine Lösung weiß isses doch eh egal? *gg*

Aber warum soll man die Lösung hier
posten, wenn eh weder ein Danke geschweige denn eine Antwort
kommt .

Da man das ja vorher nie weiß, Mut zum Risiko :smile:
Wenn dann doch mal eine glaubhaftes Danke kommt freut man sich dann doch und das gleicht zig scheinbar sinnlos in den Raum gestellte Antworten aus.

Hat m.E. irgendwas mit den schwarzen und weißen Schafen zu tun. Im Gegensatz zur bibel gibts hier halt unter 100 99 schwarze Schafe und nur ein weißes, damit muß man leben.
Naja, ganz so schlimm isses dann doch nicht *zum Glück*

Naja, die sind ja jung und werden es noch lernen. :smile:)

So jung nun wieder auch nicht *gg*

Nicht? Ich hätte jetzt gedacht du darfst Altersmäßig noch nicht Bundespräsident werden :smile:

Ich habe mir nicht den geringsten Kopp um deine Problem
gemacht, das mache ich erst dann wenn der Anfrager rausrückt
um was es geht.

Das habe ich auch nicht, alldiweil das ein ganz simples
Problem ist, wo man die Lösung auch über google finden würde
*gg*

Anderes Thema, mich ärgert daß ich bei jedem Google Aufruf einen unersättlichen Moloch „füttere“ ja unterstütze.
Das passt mir schon lange nicht mehr. Ich muß eine Trägheit, google ist ja so einfach, abschütteln und wieder so werden wie früher.

Also kein Google mehr, sondern metager, Mamma.com, aksjeeves u.v.m.

Spielt doch in dem Falle keine Rolle, alldiweil alle SE über
eine For Each Schleife abgefragt werden :wink: Oder irre ich mich
nun?

Ein Punkt der unterscheidet ist schon mal daß man bei einer Form „Me“ benutzen kann zur Referenzierung.

Ähem Marie, nimms bitte bitte nicht persönlich, war grad in
Plauder- bzw. Ausk…laune *gg*

Nicht nur du *gg*

Normal bin ich keine Plaudertasche aber manchmal „überkommst“ mich :smile:)
Derzeit verkehre ich auch sogar im Plauderbrett, gelegentlich frage ich mch was ich da eigentlich will, bin normal kein Plauderer oder Chatter.
Mir unbegreiflich was man da immer so sagen kann wenn ich jeden Tag in den Chat eile. Genauso unbegreiflich wie zwei Frauen die ich kenne, die rufen sich JEDEN Tag von ihren Arbeitsstellen aus gegenseitig an und plaudern locker mal ne halbe Stunde. Ich frag mich echt über was?
Soviel kann doch irgendwie von einem tag zum Anderen im Normalleben gar nicht passiert sein?
Naja, entsprechende Gene fehlen mir halt :smile:

Gruß
Reinhard

Moin, M.,

Dies nur zu Deiner Information.

danke, aber helfen kann ich da leider nicht. Wenn das wieder mal auftritt, dann veröffentliche Deinen Text, so wie Du ihn geschrieben hast. Wenn 20 Leute draufschauen, sollte einer was sehen.

Marie hatte allerdings gar keine tags gesetzt.

Gruß Ralf

neulich hatte ich eine direkte Anfrage und wollte mit
umfangreichem Code antworten. Das hat natürlich nur Sinn, wenn
die Einrückungen erhalten bleiben. Aber ums Verrecken
funktionierte der Pre-Tag bei mir nicht.

Hallo Markus,

ich kann nur bestätigen was das Team sagte und das was Ralf ausdrückte.
Abgesehen davon daß gelegentlich unzählige Leerzeilen eingefügt werde, funktioniert das Einrücken mit dem pre-Tag bislang immer tadellos bei mir.

Wenn es bei dir wieder auftritt, nenne Browser, BS usw. und weise uns daraufhin.
Dann schau ich/wir uns den Quelltext an, vielleicht ist da was erkennbar.
Zur Not frage ich im Html-Brett nach oder so.

Gruß
Reinhard