noch eine Frage zu UserForms:
Wenn ich das mein Formular erstmalig aufrufe, klappt alles prima!
Nachdem ich jedoch Eingaben gemacht habe und diese auch im Programm weiter
verarbeitet wurden,
bleibt das Formular mit diesen Werten belegt und die ComboBox reagiert
nicht mehr, wenn ich einen anderen Listeneintrag auswählen möchte
Wie kann ich ein Formular so initialisieren, das bei einem wiederholten
Aufruf alle
Felder wieder auf Startwerte (bzw. "LEER") gesetzt sind ?
Danke vorab!
Kurt
Gruss
E. Pfeifer
Kurt Vogler <kurt....@online.de> schrieb in im Newsbeitrag:
8s1aak$iui$2...@news.online.de...
dazu verwendest Du das Initialize-Ereignis.
Klicke die Userform in der Entwicklungsumgebung doppelt an und erfasse das
folgende Ereignis.
Private Sub UserForm_Initialize()
Dim tb
For Each tb In UserForm1.Controls
If TypeName(tb) = "TextBox" Then tb.Text = ""
Next tb
End Sub
Im obigen Beispiel werden alle Textfelder der Userform beim Aufruf gelöscht.
Viele Grüße
Bernd
--------------------------------------------------------------------------
Die MacHero EXCEL/WORKS Homepage
http://members.aol.com/Machero
Das Excel-VBA-Kompendium - 9 Leserstimmen zum Buch unter:
http://www.amazon.de/exec/obidos/ASIN/3827258154/qid%3D962263787/sr%3D1-7/028-1377235-0531764
----------------------------------------------------------------------------------------
Kurt Vogler schrieb:
Bernd Held <bh...@debis.com> schrieb in im Newsbeitrag:
39E439DD...@debis.com...
ich eiß nicht so genau, wie das Makro von Kurt genau aussieht. Möglicherweise
ist es auch ok, wenn er einen Button in der Userform integriert "Felder leeren".
Damit würde er auf jeden Fall Erfolg haben.
Viele Grüße
Bernd
Dr. Eckehard Pfeifer schrieb:
sub blabla()
'code
load UserForm
'fuelle deine felder mit werte
UserForm.show
'Im UserForm einen CommandButton mit Click-ereignis "UserForm.Hide"
'reagiere auf die werte im UserForm (sie sind immer noch gueltig)
'zB : If UserForm.Text1.Value="BlaBla" Then blabal...
unload UserForm
set UserForm = Nothing 'Objekt entgueltig entleeren!!!
'code
end sub
gruss brausewetter
danke für die schnelle Antwort!
Die Routine funktioniert soweit gut, alle Felder werden gelöscht.
Wenn ich jedoch, ohne vorher das Arbeitsblatt in welchem das Formular
definiert wurde geschlossen zu haben, mein Userform nochmals aktiviere ist
die Eingabe und Auswahl in der ComboBox gesperrt
Ich brauchte so etwas wie einen "Init"-Befehl, der das Formular komplett
zurücksetzt ??
Viele Grüße
Kurt
prima, Danke für deinen Tip!
"unload" .... und alles läuft so wie gewollt. Klasse!
Viele Grüße
Kurt
Brausewetter, Kurt <news....@gmx.de> schrieb in im Newsbeitrag:
39E48E74...@gmx.de...
>
> hallo erst mal
> ich wuerde dir folgenden vorschlag machen:
>
> sub blabla()
> 'code
> load UserForm
> 'fuelle deine felder mit werte
> UserForm.show
> 'Im UserForm einen CommandButton mit Click-ereignis "UserForm.Hide"
> 'reagiere auf die werte im UserForm (sie sind immer noch gueltig)
> 'zB : If UserForm.Text1.Value="BlaBla" Then blabal...
> unload UserForm
> set UserForm = Nothing 'Objekt entgueltig entleeren!!!
> 'code
> end sub
>
> gruss brausewetter
>
>