Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1020to1024
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
Auswahl aus Userform in Textbox übernehmen
07.11.2008 11:40:10
S.
Hallo zusammen,
ich habe eine Userform, die einen Rahmen enthält, der mit einer variablen Anzahl von Optionbuttons automatisch bestückt wird. Bei Anklicken eines Optionbuttons soll der die Nummer des Optionsbuttons in einer Textbox auf derselben Userform erscheinen.
Ich hab das Problem bislang damit gelöst, dass die Daten der Optionbuttons in der Textbox erschienen, sobald der Anwender den OptionButton aktiviert und auf einen CommandButton "Übernehmen" geklickt hat.
Wie im ersten Absatz beschrieben, wär's schöner. Hat jemand eine Idee? Genau genommen müsste ich nur einen Mausklick auf den OptionButtons abfragen, die Prüfungsroutine, welcher OptionButton aktiviert ist, habe ich fertig. Ich scheitere momentan daran, dass eine Abfrage mit "Private Sub Userform_MouseDonw(ByVal Button As Integer, ByVal shift As Integer, ByVal x As Single, ByVal y As Single" bislang nur zu einem Ergebnis führt, wenn der Mausklick direkt auf der Userform erfolgt. Sobald auf die OptionButtons, die sich wie oben beschrieben in einem Rahmen auf der Userform befinden, erhalte ich keine Reaktion.
Danke für die Hilfe.
Stephan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswahl aus Userform in Textbox übernehmen
07.11.2008 11:58:00
ptonka
Hallo Stephan,
in der Userform Doppelklick auf die Option-Buttons und anschliessend für z.B. 2 Optionbuttons jeweils folgende Syntax:

Private Sub OptionButton1_Click()
UserForm1.TextBox1.Value = "OptionButton 1"
End Sub



Private Sub OptionButton2_Click()
UserForm1.TextBox1.Value = "OptionButton 2"
End Sub


Gruß,
Ptonka

AW: Auswahl aus Userform in Textbox übernehmen
07.11.2008 14:29:25
S.
Danke für die Antwort, vielleicht habe ich mich etwas unklar ausgedrückt: Die Problematik ist, dass die Anzahl der OptionButtons variabel ist (0 bis theoretisch unendlich) und automatisch in die Userform geschrieben wird. Außerdem habe ich gehofft, dass schon beim Einzelklick die OptionButton-Daten in die Textbox übernommen werden.
Vielleicht doch noch eine Lösung?
Stephan
Anzeige
AW: Auswahl aus Userform in Textbox übernehmen
07.11.2008 15:39:53
Gerd
Hi,
dazu ist ein Klassenmodul erforderlich, wie es geht, findest du u.a. im Archiv.
mfg Gerd
Auswahl aus Userform in Textbox übernehmen
12.11.2008 12:28:00
S.
Huhuu, das übersteigt meine VBA-Qualitäten. Habe jetzt in diversen Foren gelesen, wie man ein Klassenmodul bestückt, bin aber kein Stück weiter. Bitte, noch ein Tip :-)
Danke.
Stephan
AW: Auswahl aus Userform in Textbox übernehmen
12.11.2008 17:46:16
Gerd
Hi,
das geht mit machbarem Aufwand nur mit Klassenmodul. Wenn dir das to much ist,
musst du eine alternative Lösung suchen.
mfg Gerd
AW: Auswahl aus Userform in Textbox übernehmen
13.11.2008 16:24:34
S.
Heureka! Als Einzellösung funktioniert es, habe aber noch folgendes Problem:
Die Klasse enthält folgenden Code:
Option Explicit
Public WithEvents OpB As MSForms.OptionButton

Private Sub OPB_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single,  _
ByVal y As Single)
MsgBox OpB.Name & " " & vbCrLf & " " & OpB.Parent.Name
End Sub


_________________________________________________________________
Meine Userform hat diesen Code:
Option Explicit
Dim varOB() As New clsControls


Private Sub userfomr_Initialize()
Dim L As Integer
Dim ctrl As MSForms.Control
Dim objOB As MSForms.OptionButton
For Each ctrl In Me.Controls
Select Case TypeName(ctrl)
Case "OptionButton"
ReDim Preserve varOB(L)
Set varOB(L).OpB=ctrl
L=L+1
End Select
Next
End Sub


Wenn ich jetzt an den Code der Userform folgende Ergänzung anfüge, kriege ich in der Zeile "set datei ..." die Fehlermeldung "Variable nicht definiert".


Private Sub UserForm_Activate()
set datei3 = Excel.Application.Workbooks("Dateiname.xls").Sheets("Tabellenblatt")
with datei 3
For A = 1 to 100
Next
Msgbox A
End With
End Sub


Mal abgesehen davon, dass dies hier nur ein wenig geistreicher Code ist, habe ich keine Erklärung für die Fehlermeldung. Was mache ich falsch?
Danke.
Stephan

Anzeige
AW: Auswahl aus Userform in Textbox übernehmen
13.11.2008 20:51:03
Gerd
Hallo Stephan,
die Fehlermeldung ist hier mal ziemlich präzise.
Deklariere die Objektvariable datei3.
Dim datei3 As Worksheet
set datei3 = Workbooks("Dateiname.xls").Sheets("Tabellenblatt")
with datei3
Gruß Gerd L
AW: Auswahl aus Userform in Textbox übernehmen
14.11.2008 13:07:00
S.
Ja, danke Gerd, das Problem ist gelöst.
Ohne die Ergänzung meines Codes um das Klassenmodul war die Deklaration der Objektvariablen nicht erforderlich, das Programm lief einwandfrei. Hängt es mit dem Klassenmodul zusammen, dass die Fehlermeldung erst jetzt auftaucht?
Nochmals danke für die Geduld.
Stephan
AW: Auswahl aus Userform in Textbox übernehmen
14.11.2008 13:11:00
S.
Ja, danke Gerd, das Problem ist gelöst.
Ohne die Ergänzung meines Codes um das Klassenmodul war die Deklaration der Objektvariablen nicht erforderlich, das Programm lief einwandfrei. Hängt es mit dem Klassenmodul zusammen, dass die Fehlermeldung erst jetzt auftaucht?
Kann ich die Objektvariablen vielleicht an einer Stelle für das gesamte Projekt definieren, statt in jedem Modul erneut?
Nochmals danke für die Geduld.
Stephan
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige