Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
436to440
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
436to440
436to440
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

optionbutton zurücksetzen

optionbutton zurücksetzen
03.06.2004 14:16:47
rainer
Hallo VBAler
Ich habe in einer Excel-Tabelle "Bewertung" viele Optionbuttons, die, wenn sie einmal gedrückt sind, nur mühselig per Hand (optionbutton.value von "true" auf "false") wieder zurück gesetzt werden können. Die optionbuttons geben,wenn sie gedrückt werden einen bestimmten Wert in einer bestimmten Zelle aus.
Ich möchte mit einem commandbutton "RESET" den wert "value" aller optionbuttons in der Tabelle "Bewertung" auf "false" zurücksetzen.
Ein anderer commandbutton "SAVE" soll eine neue Tabelle "Bewertung_1" erstellen, der Name stammt aus einer Zelle mit dem Inhalt "Bewertung_1". In dieser neuen Tabelle sollen die Ergebnisse aus Bewertung geschrieben werden.
Über einen dritten commandbutton "Load" soll man die Werte aus "Bewertung_1" oder "Bewertung_2" etc. wieder in die Tabelle "Bewertung" zurück laden können.
Ich wäre Euch mächtig dankbar, wenn Ihr mir helfen könntet.
Ich sitze schon seit 3 Tagen nur an diesem "zurücksetzen".
Vielen Dank vorab für Eure Hilfe,
Rainer

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: optionbutton zurücksetzen
Kurt
Wie hast du die OptionButton denn gruppiert, ansonsten kann ja immer nur einer
ausgewählt sein?
Kurt
AW: optionbutton zurücksetzen
03.06.2004 15:30:44
rainer
Ich habe bei den optionbuttons, die zusammen gehören sollen, unter "groupname" in "Verschiedenes" in dem Eigenschaftsfenster eines jeden optionbuttons den gleichen Namen eingegeben z.B. "Gruppe1" für optionbutton1 bis optionbutton10 usw..
Ich glaube es wäre auch so gegangen:

Private Sub userform_initialize()
optionbutton1.groupname = "Gruppe1"
optionbutton2.groupname = "Gruppe1"
optionbutton3.groupname = "Gruppe2"
optionbutton4.groupname = "Gruppe2"
End Sub

Bin aber VBA Anfänger.
Anzeige
NOCH OFFEN
Kurt
Alles klar, muss jetzt aber los und bin erst morgen wieder hier, deshalb
als noch offen gekennzeichnet.
Kurt
AW: optionbutton zurücksetzen
kdosi
Hallo Rainer, falls Du die Option Buttons als OLE Objekte im Sheet hast, versuch es mit dieser Proc, man braucht dazu einen Command im Sheet, Name cmdResetOLEOptionButtons
Option Explicit
' Code kommt in den Class Modul des Sheets wo sich der cmdResetOLEOptionButtons befindet

Private Sub cmdResetOLEOptionButtons_Click()
Dim oles As OLEObjects
Dim ole As OLEObject
Set oles = Me.OLEObjects
For Each ole In oles
If (ole.ProgId = "Forms.OptionButton.1") Then
ole.LinkedCell = "a65536"
[a65536].Value = 0
ole.LinkedCell = ""
End If
Next ole
[a65536].Value = ""
End Sub

--------------------------------------------------------------------------------------
Falls Du die Option Buttons als Excel Controlls hast, voersuch es mit diesem Code, kommt in einen Standard Modul. Der Beispil hier arbeitet mit dem ActiveSheet, aber man kann es auch auf weiteren Sheets erweitern. Gruss kdosi aus cz.
Option Explicit
Public Sub Reset_OptionBottons_als_ExcelControls()
Dim shps As Shapes
Dim shp As Shape

Set shps = ActiveSheet.Shapes

For Each shp In shps
If (shp.FormControlType = xlOptionButton) Then
shp.OLEFormat.Object.Value = 0
End If
Next shp
End Sub
Anzeige
AW: optionbutton zurücksetzen
kdosi
Rainer, ich habe den ersten Code noch einbischen verbessert :-). Es beeinflusst aber den Wert in der LinkedCell... Gruss kdosi
Option Explicit

Private Sub cmdResetOLEOptionButtons_Click()
Dim oles As OLEObjects
Dim ole As OLEObject
Dim strLinkedCell As String
Set oles = Me.OLEObjects
For Each ole In oles
If (ole.ProgId = "Forms.OptionButton.1") Then
strLinkedCell = ole.LinkedCell
If (strLinkedCell = "") Then
ole.LinkedCell = "a65536"
[a65536].Value = 0
ole.LinkedCell = ""
Else
Range(strLinkedCell).Value = 0
End If
End If
Next ole
[a65536].Value = ""
End Sub

Anzeige
AW: optionbutton zurücksetzen
03.06.2004 17:02:45
Rainer
Habe einfach unter Excel-Steuertoolbox zwei optionbuttons,ein commandbutton und eine combobox in einer Tabelle "Tabelle4" erstellt, danach folgenden code in "VBA-Tabelle4" eingegeben. Unter commandbutton_click() siehst Du die Schleife, die die optionbuttons zurück setzt. Es funktioniert, aber ich weiss nicht, ob das so richtig ist.
Was bewirkt dein Code unter cmdResetOLEOptionButtons_Click()?
Welcher Ort ist CZ?

Private Sub ComboBox1_Change()
Worksheets("Tabelle4").Range("A2").Value = ComboBox1.Value
End Sub


Private Sub CommandButton1_Click()
Dim i As Integer
For i = 1 To 2
Sheets("Tabelle4").OLEObjects("OptionButton" & i).Object.Value = False
Next
End Sub


Private Sub OptionButton1_Click()
If OptionButton1.Value = True Then
ComboBox1.Clear
ComboBox1.AddItem "6"
ComboBox1.AddItem "7"
ComboBox1.AddItem "8"
ComboBox1.AddItem "9"
ComboBox1.AddItem "10"
ComboBox1.DropDown
End If
End Sub


Private Sub OptionButton2_Click()
If OptionButton2.Value = True Then
ComboBox1.Clear
ComboBox1.AddItem "1"
ComboBox1.AddItem "2"
ComboBox1.AddItem "3"
ComboBox1.AddItem "4"
ComboBox1.AddItem "5"
ComboBox1.DropDown
End If
End Sub


Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
End Sub

Anzeige
AW: optionbutton zurücksetzen
kdosi
Hallo Rainer,
Option Explicit

Private Sub CommandButton1_Click()
'    Dein Code ist fast ok, es koennte aber passieren, das es
'    zu einem Fehler kommt, z.B dann, wenn OptionButton2 nicht im Sheet waere,
'    Und um den richtigen Ergebniss zu bekommen, muesste man den richtigen Anzahl
'    an OptionButtons im Sheet koennen.
'    

Private Sub CommandButton1_Click()
'    Dim i As Integer
'    For i = 1 To 2
'        Sheets("Tabelle4").OLEObjects("OptionButton" & i).Object.Value = False
'    Next
'    End Sub

' -----------------------------------------------------------------
' deshalb schlage ich folgendes vor :

Dim ole_objekte As OLEObjects
Dim ole_objekt As OLEObject

' ein Verweis auf alle OLE Objekte im Active Sheet
Set ole_objekte = ActiveSheet.OLEObjects

' wir gehen alle OLE Objekte durch und
For Each ole_objekt In ole_objekte
' testen ob es sich um einen Option Button handelt
If (ole_objekt.progID = "Forms.OptionButton.1") Then
' und wenn ja, dann Value aus False :-)
ole_objekt.Object.Value = False
End If
Next ole_objekt

End Sub
' CommandButton1_Click
Mein Code unter cmdResetOLEOptionButtons_Click() bewirkt das gleiche, also die OptionButtons Value auf False, nur habe ich uebersehen, das man es direct machen kann. Also ich habe einen Umweg genommen und um den Wert der Value Eigenschafft zu aendern, habe ich dazu eine LinkedCell Eigenschafft benutzt, was ist auch moeglich, aber nicht noetig :-). Welcher Ort ist CZ? CZ ist ein kleiner Vorort von Deutschland :-), man nennt uns die Tschechische Republik :-). Gruss kdosi
Anzeige
AW: optionbutton zurücksetzen
04.06.2004 16:20:13
rainer
Hi kdosi,
danke für deine Hilfe.
habe deinen Code ausprobiert, bekomme ihn aber nicht zu laufen.
Bei Activesheet kommt die Fehlermeldung "Typen unverträglich".
AW: optionbutton zurücksetzen
04.06.2004 18:35:18
rainer
Hi kdosi,
super, hat doch noch geklappt!!!
habe statt "Activesheet" den Namen der Tabelle angegeben "Worksheets("Tabelle4") eingegeben !!!
Vielen Dank,
Rainer
PS: wenn Du zu den anderen beiden Problemen von mir eine Lösung kennst,
wäre ich Dir sehr dankbar.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige