ist sowas wie im Betreff möglich?
Vielen Dank, der t4z
der Quelltext wird genau so lange immer wieder ausgeführt, solang man mit der Mouse über dem Frame1 ist
Wie/wann wird denn Dein Code gestartet ?Option Explicit
Dim bolNichtmehr As Boolean
Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, _
ByVal Y As Single)
If bolNichtmehr Then Exit Sub
bolNichtmehr = True
Me.Caption = X & " " & Y
End Sub
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As _
Single, ByVal Y As Single)
If bolNichtmehr Then bolNichtmehr = False
End Sub
Gruß K.RolaVBA-Code: |
Private Sub CommandButton1_Click() Dim cnt As Control 'Alle OptionButtons des UserForms anzeigen : For Each cnt In Me.Controls If TypeName(cnt) = "OptionButton" Then 'Hier Dein Code für die OptionButtons MsgBox cnt.Name End If Next End Sub Private Sub CommandButton2_Click() Dim cnt As Control 'Alle OptionButtons für "Frame1" anzeigen : For Each cnt In Frame1.Controls If TypeName(cnt) = "OptionButton" Then 'Hier Dein Code für die OptionButtons MsgBox cnt.Name End If Next End Sub Gruß, NoNet
AW: For Each OptionButton in Userform (oderFrame) mgl?
Kawensmann
Hallo, so geht's:
GrußKawensmann |
Dim cnt As Control
For Each cnt In UserForm1.Controls
'For Each cnt In UserForm1.Frame1.Controls 'Für einen Frame...
If TypeName(cnt) = "OptionButton" Then
' dein Code
End If
Next
GrußErstelle ein UserForm in Excel VBA:
Füge OptionButtons hinzu:
Code zum Durchlaufen der OptionButtons:
Dim cnt As Control
For Each cnt In Me.Controls
If TypeName(cnt) = "OptionButton" Then
' Hier kommt dein Code für die OptionButtons
MsgBox "Gefundener OptionButton: " & cnt.Name
End If
Next
Für Frames:
Dim cnt As Control
For Each cnt In Frame1.Controls
If TypeName(cnt) = "OptionButton" Then
' Hier kommt dein Code für die OptionButtons im Frame
MsgBox "Gefundener OptionButton im Frame: " & cnt.Name
End If
Next
Problem: Der Code wird mehrmals ausgeführt, wenn die Maus über den Frame bewegt wird.
Dim bolNichtmehr As Boolean
Private Sub Frame1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If bolNichtmehr Then Exit Sub
bolNichtmehr = True
' Dein Code hier
End Sub
Problem: Der Code funktioniert nicht, wenn keine OptionButtons vorhanden sind.
Beispiel für eine Funktion, die nur OptionButtons zurückgibt:
Function GetOptionButtons() As Collection
Dim ctrl As Control
Dim optButtons As New Collection
For Each ctrl In Me.Controls
If TypeName(ctrl) = "OptionButton" Then
optButtons.Add ctrl
End If
Next ctrl
Set GetOptionButtons = optButtons
End Function
Beispiel 1: Alle OptionButtons in einem UserForm anzeigen.
Private Sub CommandButton1_Click()
Dim cnt As Control
For Each cnt In Me.Controls
If TypeName(cnt) = "OptionButton" Then
MsgBox "OptionButton Name: " & cnt.Name
End If
Next
End Sub
Beispiel 2: OptionButtons in einem Frame verarbeiten.
Private Sub CommandButton2_Click()
Dim cnt As Control
For Each cnt In Frame1.Controls
If TypeName(cnt) = "OptionButton" Then
' Hier wird die Logik für jeden gefundenen OptionButton ausgeführt
End If
Next
End Sub
Debug.Print
anstelle von MsgBox
, um Ausgaben bei der Fehlersuche zu protokollieren, ohne das UserForm zu unterbrechen.1. Kann ich die OptionButtons in verschiedenen Frames gleichzeitig verwalten? Ja, du musst jedoch sicherstellen, dass du die Controls aus jedem Frame einzeln durchläufst.
2. Was ist der beste Weg, um den Zustand der OptionButtons zu speichern? Du kannst den Status der OptionButtons in einer Variablen oder in einem Array speichern, um später darauf zugreifen zu können.
3. Wie kann ich den Code in einer bestimmten Excel-Version anpassen? Stelle sicher, dass du die richtige VBA-Syntax und die spezifischen Versionseinstellungen verwendest. Der obige Code ist in der Regel in den meisten Versionen von Excel VBA anwendbar.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen