Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
996to1000
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
Inhaltsverzeichnis

RefEdit Feld verlassen - Problem mit SetFocus

RefEdit Feld verlassen - Problem mit SetFocus
01.08.2008 11:41:51
Andreas
Hallo Herber Fans,
ich habe ein wenig mit den Events experimentiert, die im VBA Editor für UserForm Elemente angeboten werden. In diesem Fall für ein RefEdit Feld. Ich möchte nicht erst auf Button Click die Richtigkeit einer RefEdit Selektion prüfen, sondern schon eher und automatisch.
Zwei Dinge kommen in Frage: Change und Exit.


Private Sub RefEdit_Test1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Private Sub RefEdit_Test1_Change()
If Range(RefEdit_Test1.Text).PivotField.Orientation xlRowField Then
MsgBox "Startfeld muß ein Feld aus dem Zeilenbereich sein!"
RefEdit_Test1.Value = ""
RefEdit_Test1.SetFocus
Else
debug.print = Range(RefEdit_Test1.Text).PivotField.Position
End If
End Sub



Als ich mit Change gestestet habe, ist mir Excel des Öfteren abgestürzt. Grund unbekannt. Überdies war unvorteilhaft, daß die Messagebox sehr häufig kommt. Auch wenn ich meinen Fehler der falschen Selektion bemerkte und korrigierte. Change ist für die praktische Anwendung in diesem Fall zu empfindlich.
Also ist Exit meine Präferenz als auslösendes Element. Aber: Die SetFocus Anweisung funktioniert nicht korrekt. Wenn auf Exit (Enter drücken) die Prüfung negativ verläuft und die Messagebox kommt, wird der Wert von RefEdit_Test1 wie im Code hinterlegt auf „“ gesetzt, aber der Focus liegt nicht auf diesem RefEdit Feld, sondern auf dem nächsten Feld entsprechend der Aktivierreihenfolge.
Warum greift SetFocus beim Change Event, jedoch nicht bei Exit.
Welchen Befehl kann ich optional noch verwenden, um den Focus nach Fehlerhafter Eingabe wieder auf/ in das RefEdit Feld zu bringen?
Vielen Dank für Eure Ideen.
Grüße, Andreas Hanisch

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RefEdit Feld verlassen - Problem mit SetFocus
01.08.2008 12:57:00
Lars
Hi,
prinzipiell; Finger weg vom RefEdit, ist ein einziger Bug. Verwende stattdessen Application.Inputbox
mit Typ 8(Range).
mfg Lars

AW: RefEdit Feld verlassen - Problem mit SetFocus
01.08.2008 13:01:06
Andreas
Hallo Lars,
ich habe schon davon gehört, daß das RefEdit nicht ganz optimal ist. Vielleicht deswegen auch die Abstürze beim Change Event. Aber alle RefEdits die ich bisher im Einsatz habe, haben sich bewährt. Ich komme in meiner Entwicklung ja von der application.InputBox, aber diese ist zu reglementiert. Ich habe die RefEdits zumeist im Verbund mit anderen Buttons, Textfeldern, Labels in UserForms.
Ich muß bei RefEdit bleiben.
Dank und Gruß, Andreas

Anzeige
AW: RefEdit Feld verlassen - Problem mit SetFocus
02.08.2008 09:40:04
Nepumuk
Hallo Andreas,
wenn deine Prüfung "FALSCH" ergibt, setzt doch einfach Cancel auf True. Damit bleibt der Cursor im Control.
Gruß
Nepumuk

AW: RefEdit Feld verlassen - Problem mit SetFocus
05.08.2008 16:08:12
Andreas
Hallo Nepomuk,
das übersteigt nun doch meine bisherige VBA Erfahrungen. Wo muß ich Cancel auf True setzen.
'Private Sub TxtBox_TDX_Count_Change()': In den Klammern oder unten in der IF Prüfung?
Vielen Dank für eine zusätzlich Erläuterung.
Grüße, Andreas

AW: RefEdit Feld verlassen - Problem mit SetFocus
06.08.2008 16:40:00
Nepumuk
Hallo Andreas,
ich dachte es geht um diese Prozedur:
Private Sub RefEdit_Test1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Und hier hast du eine Cancel-Variable.
Wieso jetzt auf einmal das: Private Sub TxtBox_TDX_Count_Change() ?
Davon war bisher nicht die Rede.
Gruß
Nepumuk

Anzeige
AW: RefEdit Feld verlassen - Problem mit SetFocus
06.08.2008 17:03:00
Andreas
Hallo Nepomuk,
Du hast Recht!
Es war ein versehen meinerseits. Ich habe mich in der UserForm vertan. Es geht natürlich um das RefEdit Feld. Entschuldige bitte.
Also müßte die Zeile so aussehen:
Private Sub RefEdit_Test1_Exit(ByVal Cancel As True) (?)
Danke Dir.
Grüße, Andreas

AW: RefEdit Feld verlassen - Problem mit SetFocus
06.08.2008 17:17:42
Jens
Hi,
die Prozedur darf nicht verändert werden:
Private Sub RefEdit_Test1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Deine Bedingung nicht eintritt Then
Cancel = True
End If
Damit wird Exit verhindert.
mfg Jens

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige