Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
308to312
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
308to312
308to312
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textbox relativ referenzieren?

Textbox relativ referenzieren?
13.09.2003 15:13:26
Björn
Huhu zusammen,

weiß jemand, wie man eine Textbox (in einer Userform) relativ referenzieren kann, dh also ohne den "absoluten" Namen. Git es so etwas wie "ActiveTextbox" oder "ThisTextbox". Ich habe mehrere Userforms mit mehreren Dutzend Textboxen und möchte vermeiden, in jede Textbox einzelnen Code der Art:

If isnumeric(textbox1.value) or textbox1.value then
tue dies und das
else
tue was anderes, etc
end if

eingeben zu müssen.

Vielen Dank für jeden Tipp!

Viele Grüße

Björn

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox relativ referenzieren?
13.09.2003 15:33:50
Dieterb
Hallo,

hast Du schon mal versucht, die Textbox als eigenständige Routine zu programmieren (Sub)
und diese dann aufzurufen?

Versuch es mal.
AW: Textbox relativ referenzieren?
13.09.2003 16:52:47
Björn
Huhu Dieter,

hmmm...um ehrlich zu sein, verstehe ich nicht genau, was Du damit meinst. Wenn Du magst, würde mich Deine Erläuterung schon interessieren. Jedenfalls trifft aber Matthias' Lösung die Problemstellung. Trotzem Danke!

Viele Grüße

Björn
AW: Textbox relativ referenzieren?
13.09.2003 15:56:34
Matthias G
Hallo Björn,

Probier mal diesen Code, da erklärt es dir:

Sub test()
Dim i
For i = 0 To UserForm1.Controls.Count - 1
MsgBox UserForm1.Controls(i).Name
Next i
End Sub

Die Aktive Control erhältst du mit UserForm1.ActiveControl.Name

Gruß,
Matthias
Anzeige
AW: Textbox relativ referenzieren?
13.09.2003 16:50:26
Björn
Huhu Matthias,

Klasse :-). Dankeschön! Funktioniert auf Anhieb.

Hmmm....eine Frage hätte ich noch. Kann man den Befehl Cancel auch auf die gerade aktive Textbox beziehen? Der Code soll nach Möglichkeit ausgelagert werden in eine eigene Routine und in etwa so aussehen:


Sub Teste_typ()
If IsNumeric(PA.ActiveControl.Value) Or PA.ActiveControl.Value = "" Then
PA.ActiveControl.Value = Format(PA.ActiveControl.Value, "#,##0.00")
PA.ActiveControl.ForeColor = &H0
Ausgabe
Else
MsgBox "Bitte Eingabe korrigieren. Eingegebener Wert ist keine Zahl.", vbCritical, "Unzulässige Eingabe"
Cancel = True
End If
End Sub


Nochmals Danke!

Viele Grüße

Björn
Anzeige
AW: Textbox relativ referenzieren?
13.09.2003 18:07:50
Matthias G
Hallo Björn,
Nochmal zur Antwort von Dieterb, er meint folgendes:
Wenn du in der Ansicht des Userforms bist kannst du auf ein Steuerelement Rechtklicken und "Code anzeigen" wählen.
Dann bist du im Codefenster des Userforms. Hier hast du ganz oben im Fenster zwei Auswahllisten: Links für jedes Element (z.B. TextBox1) und rechts ein zugehöriges Ereignis.
z.B. erzeugt die Auswahl von TextBox1 (links) und Exit (rechts) den Prozedurrumpf:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
End Sub

Hier kannst Du Code reinschreiben, der dann ausgeführt wird, wenn Du die Textbox verlässt.
(z.B. Prüfung auf Fehler, Wenn Fehler, dann Fehlermeldung und der Befehl TextBox1.SetFocus - dieser Setzt den Cursor wieder in die TextBox1.
Du kannst das ganze mit verschiedenen MsgBox-Befehlen ausprobieren.

Viel Spaß!
Matthias
Anzeige
AW: Textbox relativ referenzieren?
13.09.2003 19:07:27
Björn
Huhu Matthias,

vielen Dank für deine weitere AW. Freilich war mir schon klar, wie man zum Codefenster eines Steuerelements wechselt ;-). Andernfalls hätte meine erste Frage ja wenig Sinn ergeben. Textbox1.setfocus dürfte übrigens nach meiner Erfahrung nicht funktionieren, weil der Befehl VOR Verlassen der Textbox ausgeführt wird. Mit Cancel = true klappt s.

Viele Grüße

Björn

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige