Unzulässige Verwendung einer Eigenschaft

Hallo Leute,

ich habe in VBA ein Userform für Excel gebastelt, das drei Optionsfelder enthält. In Abhängigkeit davon, welches davon ausgewählt wird, sollen verschiedene Aktionen ausgeführt werden. Dafür habe ich public die Variable filter als byte deklariert, die dann die Werte 0, 1 oder 2 zugewiesen bekommt. Danach will ich mit Select Case die Aktionen laufen lassen die ich brauche.

Jetzt habe ich folgendes im Code stehen:

Private Sub ob\_stunden\_filter\_Click()
 Set usr\_dialog.filter = 1
End Sub

nun erscheint beim Compilieren obige Fehlermeldung. Ich bin sicher, dass es kein großes Ding ist, aber ich als Anfänger irgendwas falsch deklariert o.ä. habe. Bin auch in der Theorie nicht 100% fit. Ist es in solchen Fällen überhaupt richtig, das so zu programmieren oder geht es vielleicht auch einfacher und ohne public-Variable?

Private Sub ob\_stunden\_filter\_Click()
 Set usr\_dialog.filter = 1
End Sub

Hi Micha,
kannst du allen relevanten Code posten und in welchen Modulen er jeweils steht?
Gruß
Reinhard

Also alles spielt sich im Code des Userforms ab, wenn ich im Projektexplorer doppelt drauf klicke.

die ersten beiden Zeilen lauten:

Option Explicit
Public filter As Byte

dann folgen die Prozeduren für alle möglichen Steuerelemente, unter anderem eben auch die Optionsfelder, bei denen es ja hakt

Private Sub ob\_kein\_filter\_Click()
 Set usr\_dialogfilter = 0
End Sub

Private Sub ob\_projekt\_filter\_Click()
 Set usr\_dialog.filter = 2
End Sub

Private Sub ob\_stunden\_filter\_Click()
 Set usr\_dialog.filter = 1
End Sub

mehr soll in den Klick-Prozeduren der Optionsfelder gar nicht passieren. es soll einfach der Variable Filter ein unterschiedlicher Wert zugewiesen werden, der dann beim Klick auf einen noch zu programmierenden Weiter-Button ausgelesen wird, um festzustellen, welche weiteren Aktionen durchgeführt werden müssen.

Weitere wichtige Informationen fallen mir nicht ein. Immer wenn ich die Userform ausführe, schmiert sie genau dann mit o.g. Fehler ab, wenn ich eins der Optionsfelder betätige

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Micha

Also alles spielt sich im Code des Userforms ab, wenn ich im
Projektexplorer doppelt drauf klicke.die ersten beiden Zeilen lauten:

Option Explicit
Public filter As Byte

Lösche das „Public filter As Byte“ und stelle es zu Anfang von Modul1

dann folgen die Prozeduren für alle möglichen Steuerelemente,
unter anderem eben auch die Optionsfelder, bei denen es ja
hakt

Private Sub ob_kein_filter_Click()
Set usr_dialogfilter = 0
End Sub
Private Sub ob_projekt_filter_Click()
Set usr_dialog.filter = 2
End Sub
Private Sub ob_stunden_filter_Click()
Set usr_dialog.filter = 1
End Sub

Probier mal:

Option Explicit
Public filter As Byte

Private Sub ob\_kein\_filter\_Click()
 filter = 0
End Sub

Private Sub ob\_projekt\_filter\_Click()
 filter = 2
End Sub

Private Sub ob\_stunden\_filter\_Click()
 filter = 1
End Sub

oder gleich so, dann ersparst du dir die Public-Variable:

Private Sub ob\_kein\_filter\_Click()
 call weiter(0)
End Sub

Private Sub ob\_projekt\_filter\_Click()
 call weiter(2)
End Sub

Private Sub ob\_stunden\_filter\_Click()
 call weiter(1)
End Sub

In Modul1 dann

Option Explicit

Sub weiter(byval Wert as byte)
MsgBox Wert
End Sub

mehr soll in den Klick-Prozeduren der Optionsfelder gar nicht
passieren. es soll einfach der Variable Filter ein
unterschiedlicher Wert zugewiesen werden, der dann beim Klick
auf einen noch zu programmierenden Weiter-Button ausgelesen
wird, um festzustellen, welche weiteren Aktionen durchgeführt
werden müssen.

Weitere wichtige Informationen fallen mir nicht ein. Immer
wenn ich die Userform ausführe, schmiert sie genau dann mit
o.g. Fehler ab, wenn ich eins der Optionsfelder betätige

Vielen Dank, das sind GENAU die Tipps, die mich weiter gebracht haben!