Parameterübergabe-Probleme

Hallo,
ich rufe per button_click folgendes auf:

Private Sub CommandButton1_Click()
Textbox_füllen UserForm3, TextBox1, „Kalkulation“, 17, 5
UserForm3.Show
End Sub

folgendes steht bei modul1:

Sub Textbox_füllen(Ufrm, TBox, WS, Zeile, Spalte)
Ufrm.TBox.Value = (Worksheets(WS).Cells(Zeile,
Spalte).Value
End Sub

nun ging das mal ganz kurz, jetzt meint er immer, Laufzeitfehler 438 Objekt unterstützt Eigenschaft oder methode nicht. wo ist das problem??

danke der hilfe

hallo

huch ist das geiler code :smile:

also 1. du solltest darauf achten, dass du bei parameterübergaben den datetyp übergibst, sonst ist alles vom typ variant und wie man in jedem buch lesen kann ist variant nicht so das wahre.

  1. zu deinem fehler
    das --> Ufrm.TBox.Value = (Worksheets(WS).Cells(Zeile, Spalte).Value geht nicht!
    du kannst nicht variablen einer sub übergeben und dann diese mittels „.“ also Ufrm.TBox zusammenhängen. Wenn du das schreibst geht der Compiler davon aus dass die Variable UFrm welches auf das Form UserForm3 verweist eine Public Property TBox besitzt… was es aber anscheinend nicht tut. Es genügt nur die Textbox der Sub zu übergeben, die weiss dann schon dass sie sich auf dem Form befindet.
    Schreib die Sub so um:

’ auf sonderzeichen wie ü würde ich verzichten
Sub Textbox_fuellen(TBox as TextBox, WS as String, Zeile as Long, Spalte as Long)
TBox.Value = (Worksheets(WS).Cells(Zeile, Spalte).Value
End Sub

gruss und viel erfolg

Hi Matthias!

Ich stimme Guiseppe in jedem Punkt überein!

Allerdings hat eine TextBox keine Value Eigenschaft -> die heißt Text !!!

Aber da seid ihr sicher schon dahintergekommen !

LG
Mario

Hallo,

danke erstmal für die Antwort.

  1. zu deinem fehler
    das --> Ufrm.TBox.Value = (Worksheets(WS).Cells(Zeile,
    Spalte).Value geht nicht!
    du kannst nicht variablen einer sub übergeben und dann diese
    mittels „.“ also Ufrm.TBox zusammenhängen. Wenn du das
    schreibst geht der Compiler davon aus dass die Variable UFrm
    welches auf das Form UserForm3 verweist eine Public Property
    TBox besitzt… was es aber anscheinend nicht tut. Es genügt
    nur die Textbox der Sub zu übergeben, die weiss dann schon
    dass sie sich auf dem Form befindet.
    Schreib die Sub so um:

’ auf sonderzeichen wie ü würde ich verzichten
Sub Textbox_fuellen(TBox as TextBox, WS as String, Zeile as
Long, Spalte as Long)
TBox.Value = (Worksheets(WS).Cells(Zeile, Spalte).Value
End Sub

das habe ich soweit geändert. ws hatte ich aufgrund anderer meinungen als worksheet deklariert. dadurch leif es genau 1 mal, dann meckerte er an der übergabe von „kalkulation“, was bisher aber problemlos lief (habs durchprobiert). daraufhin änderte ich die deklaration von ws auf variant, dann ging es. und nicht nur einmal. die zusammenhänge sind mir noch nicht ganz klar, ich vermute aber, dass der compiler seine meinung zu den nicht deklarierten variablen geändert hat und somit es nur einmal lief. war immer sehr komisch, da nicht wiederholbar. ich hab die variablen ufrm tbox und ws mit sämtlichen deklarationen belegt (object, textbox, string), alles ging nicht. so gehts aber jetzt.
ich muß gestehen, kaum ahnung von objektorientierter programmierung zu haben. ich taste mich im moment an ein selbstgestelltes thema durch probieren und irrtum und foren heran. danke dir aber. bis zum nächsten mal :smile:

matthias