Registriert seit: 23.10.2014
Version(en): Office 2013
Hallo liebe Excelgemeinde und -helfer,
ich benötige Hilfe bei einem Formular, das ich versenden will. Es ist eigentlich fertig und ich möchte nun die vielen OptionButton leeren und ein leeres Formular versenden, (d.h. ohne Markierung).
Natürlich kann ich alle OptionsButton manuell leeren, aber das ist sehr mühselig.
Mit VBA bin ich nicht besonders geübt und ein Aufzeichnungsversuch hat nicht funktioniert.
Deshalb hier meine Bitte um Hilfe oder Tipps, wie ich die Optionsbutton leeren kann.
Schon jetzt vielen Dank an alle Leser und Helfer.
Viele Grüße
Michael J. Arriens
Office 2016
Windows 10
Kaum macht man es richtig, schon funktioniert es!
Registriert seit: 11.04.2014
Version(en): Office 2007
Hallo Michael,
versuchs mal so
Code:
Private Sub CommandButton1_Click()
Dim ctlOption As Control
For Each ctlOption In Me.Controls
If TypeName(ctlOption) = "OptionButton" Then ctlOption = False
Next ctlOption
End Sub
Gruß Stefan
Win 10 / Office 2016
Registriert seit: 23.10.2014
Version(en): Office 2013
Hallo Stefan,
vielen Dank für deine schnelle Hilfe.
Ich habe deinen Code eingebaut, aber es gibt folgende Fehlermeldung.
Fehler beim Kompilieren:
Methode oder Datenobjekt nicht gefunden!
Dabei wurde .Controls blau hinterlegt.
Nun bin ich leider nicht die VBA-Leuchte, sodass ich mit dieser Fehlermeldung nichts anfangen kann. Kannst du nochmal helfen?
Viele Grüße
Michael
Viele Grüße
Michael J. Arriens
Office 2016
Windows 10
Kaum macht man es richtig, schon funktioniert es!
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Michael,
Da Du von Formularen schreibst, ging Stefan von einer Userform aus.
Du meinst aber eine Tabelle, welche Du als Formular nutzt, und dort sind die Optinbuttons.
Da gibt es wieder zwei Arten von Optionbuttons. In unten stehendem Code sind beide Möglichkeiten berücksichtigt (siehe Kommentare im Code).
Code:
Sub options_leeren()
'##########################################################
'Optionbutton aus Formularsteuerelementen in Tabelle
Dim oShape As Shape
For Each oShape In Me.Shapes
If InStr(oShape.Name, "Option Button") Then oShape.OLEFormat.Object.Value = -4146
Next
'##########################################################
'Optionbutton aus ActiveX Steueerelementeb in Tabelle
Dim oObjekt As OLEObject
For Each oObjekt In Me.OLEObjects
If InStr(oObjekt.Name, "OptionButton") Then oObjekt.Object.Value = False
Next
End Sub
Gruß Atilla
Registriert seit: 23.10.2014
Version(en): Office 2013
Hallo Atilla,
vielen Dank für deinen Hinweis. Da hast du völlig recht. Ich habe mich missverständlich ausgedrückt und tatsächlich selbst ein Formular entwickelt, wie du vermutetest.
Jetzt werde ich mich deines Codes annehmen und ihn einsetzen. Wahrscheinlich benötige ich einige Zeit dafür, da ich mich mit Codes nicht so gut auskenne und mich noch etwas schwer tue mit dem Anpassen.
Vielen Dank erst einmal.
Viele Grüße
Michael
Viele Grüße
Michael J. Arriens
Office 2016
Windows 10
Kaum macht man es richtig, schon funktioniert es!
Registriert seit: 23.10.2014
Version(en): Office 2013
Hallo Atilla,
vielen Dank noch einmal für deine Hilfe.
Nun habe ich es hinbekommen.
Mein zusätzlicher Fehler war, dass ich einige OptionsButton gruppiert hatte. Damit ging es nicht, aber nachdem ich die Gruppierungen aufgehoben habe, funktioniert es.
Vielen Dank und entschuldige bitte meine missverständliche Beschreibung in der ersten Anfrage.
Viele Grüße
Michael Arriens
Viele Grüße
Michael J. Arriens
Office 2016
Windows 10
Kaum macht man es richtig, schon funktioniert es!