Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
484to488
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
484to488
484to488
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Format in TextBox nicht in einem Rahmen(Frame)
14.09.2004 10:19:39
walter
Hallo,
ich möchte mich entschuldigen, wenn ich aufdringlich bin und noch einmal
NEU zu meiner Sache gestern Abend schreibe "Wieso kein Format".
Nun brauche ich wirklich dringend eine Unterstützung, bitte .
Hier mein verändertes Makro:
'

Private Sub TextBox14_Change()

Private Sub TextBox14_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TextBox14) = False And TextBox14 <> "" Then
MsgBox "Es sind nur nummerische Werte erlaubt."
TextBox14.SetFocus
With TextBox14
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox14 = "000 000"
End If
On Error Resume Next
ThisWorkbook.Worksheets("Prov-Blatt").Range("M4") = CDbl(TextBox14)
TextBox14 = Format(ThisWorkbook.Worksheets("Prov-Blatt").Range("M4").Value, ("000 000"))
TextBox14.SetFocus
With TextBox14
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
End Sub

Beim verlassen der TextBox14 soll direkt das Format angezeigt werden.
Funktioniert auch, wenn die TextBox14 außerhalb des Rahmens(Frame), leider keine
Reaktion wenn ich die TextBox14 in den vorgesehenen Rahmen plaziere.
Wer kennt den die Lösung, wenn die TextBox14 in einem Frame liegt ?
Ich bedanke mich im voraus
Gruss Walter

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format in TextBox nicht in einem Rahmen(Frame)
14.09.2004 13:30:39
max
In Excel2000:
"Frame1.TextBox14"
Vielleicht bei Dir auch.
Max
AW: ohne Erfolg
14.09.2004 14:24:34
walter
Hallo Max,
leider keine Reaktion.
Ich habe eine UserForm muß aber in der auch mit Excel97 arbeiten.
Wie gesagt, ohne Rahmen kein Problem.
Vielleicht hast Du noch eine Idee.
Gruss Walter
AW: ohne Erfolg
14.09.2004 17:20:58
max
Hallo.
Habe Deine erste Frage im Forum nicht finden können, deshalb kann ich nur mutmaßen, was Du vorhast.
Nach geteste und gegrübel:
Irgendwie beißen sich in Deinem makro 'n paar Katzen in mehrere Schwänze (oder ich hab's nicht richtig intus):
Der Wert soll numerisch sein, bekommt aber im Format ein Leerzeichen verpasst. Das gibt Ärger, wenn man die letzte Ziffer einer (richtigen) Zahl verändern will.
Dann wird sie in "M4" eingetragen, um wieder in die Textbox, wo sie schon steht, eingetragen zu werden.
Zudem verhindert ein On-Error-Resume-Next einen sauberen Ablauf. Eventuell wird der Format-Befehl gar nicht ausgeführt.
Kann sein, dass Excel dass auch nicht gut findet.
Das Exit-Makro bekomm' ich übrigens auch nicht zum Laufen, hab's daher mal mit AfterUpdate versucht:
&ltpre&gt
Private Sub TextBox14_AfterUpdate()
If IsNumeric(TextBox14) = False And TextBox14 &lt&gt "" Then
MsgBox "Es sind nur numerische Werte erlaubt."
TextBox14 = ""
Exit Sub
End If
ThisWorkbook.Worksheets("Prov-Blatt").Range("M4") _
= CDbl(TextBox14)
TextBox14 = Format(TextBox14, "000 000")
End Sub&lt/pre&gt
Könnte sein, dass jetzt Excel97 noch vor j e d e m "TextBox14" den Namen des Frames sehen will, und davor eventuell noch den Namen der Userform.
Auf dieser Seite der Leitung läuft's auch so. Leider wie geschrieben mit Excel2000.
Vielleicht haben wir aber auch Verständnisschwierigkeiten. Bei genauerer Beschreibung würde ich versuchen, Dir noch was schicken.
Max
Anzeige
AW: ohne Erfolg
14.09.2004 17:50:54
walter
Hallo Max,
ich finde es toll das Du dir so eine Menge ZEIT genommen hast.
Nochmals zur Erklärung:
Das Makro läuft einwandfrei, schreibt auch in die Mappe, beim verlassen mit TAB wird
dann auch das Format so RICHTIG in der TextBox14 angezeigt.
"123 456", wenn ich jetzt diese TextBox in einem Frame schiebe, weil das Optisch schöner aussieht, wird auch alles reingeschrieben, jedoch wird beim verlassen das Format nicht
angezeigt. "123456" nur beim wieder Aufruf der UserForm wird dann auch das Format Richtig angezeigt.
Hier mein aktuelles Makro:

Private Sub TextBox14_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TextBox14) = False And TextBox14 <> "" Then
MsgBox "Es sind nur nummerische Werte erlaubt."
TextBox14.SetFocus
With TextBox14
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox14 = "000 000"
End If
On Error Resume Next
ThisWorkbook.Worksheets("Prov-Blatt").Range("M4") = CDbl(TextBox14)
TextBox14 = Format(ThisWorkbook.Worksheets("Prov-Blatt").Range("M4").Value, ("000 000"))
TextBox14.SetFocus
With TextBox14
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
'In Excel2000:
'"Frame1.TextBox14"
'Vielleicht bei Dir auch.
'Max
End With
End Sub

Gruss Walter
Anzeige
AW: ohne Erfolg
14.09.2004 18:12:17
max
Ich habe gearade Dein aktuelles Makro von
Private Sub TextBox14_Exit(ByVal Cancel As MSForms.ReturnBoolean)
nach
Private Sub TextBox14_AfterUpdate()
umbenannt und es bringt mir das gewünschte Format in die TextBox (im Frame)
Nur entstehen dadurch eventuell weitere Probleme, die ein Umdenken erfordern.
Versuch's mal, nur die erste Zeile ersetzen.
Max
Danke Super hat geklappt !
14.09.2004 19:50:12
Walter
Hallo Max,
super.
Danke das hat ja super geklappt.
Gruss Walter
Frage warum...
14.09.2004 20:13:07
Walter
Hallo Max,
hast mir sehr geholfen, habe nur noch die Frage, wie Du das meinst.
Was heißt: AfterUpdate()?
Habe nur die Überschrift kopiert und funktioniert, muß ich noch was
für später beachten ?
Gruss walter
Anzeige
AW: Danke Super hat geklappt !
14.09.2004 22:11:09
max
Nein,
wenn was nicht klappt wird Excel sich schon melden. Hatte wohl in eine falsche Richtung gedacht.
Hier nochmal aus der Hilfe Exit & AfterUpdate:
AfterUpdate-Ereignis

Tritt ein, nachdem Daten in einem Steuerelement über die Benutzeroberfläche geändert wurden.
Syntax
Private Sub object_AfterUpdate( )
Die Syntax für das AfterUpdate-Ereignis besteht aus folgenden Teilen:
Teil Beschreibung
object Erforderlich. Ein gültiges Objekt.
Hinweise
Das AfterUpdate-Ereignis tritt unabhängig davon ein, ob das Steuerelement gebunden ist (dies ist der Fall, wenn die RowSource-Eigenschaft eine Datenquelle für das Steuerelement angibt). Dieses Ereignis kann nicht abgebrochen werden. Wenn Sie die Aktualisierung abbrechen möchten (also den vorherigen Wert des Steuerelements wiederherstellen möchten), verwenden Sie das BeforeUpdate-Ereignis und setzen das Argument Cancel auf den Wert True.
Das AfterUpdate-Ereignis tritt nach dem BeforeUpdate-Ereignis und vor dem Exit-Ereignis für das aktuelle Steuerelement sowie vor dem Enter-Ereignis für das nächste Steuerelement in der Aktivierreihenfolge ein.
Enter-, Exit-Ereignisse

Das Enter-Ereignis tritt ein, bevor ein Steuerelement den Fokus von einem anderen Steuerelement im gleichen Formular erhält. Das Exit-Ereignis tritt ein, unmittelbar bevor der Fokus von einem Steuerelement auf ein anderes Steuerelement im gleichen Formular wechselt.
Syntax
Private Sub object_Enter( )
Private Sub object_Exit( ByVal Cancel As MSForms.ReturnBoolean)
Die Syntax der Ereignisse Enter und Exit besteht aus folgenden Teilen:
Teil Beschreibung
object Erforderlich. Ein gültiger Objektname.
Cancel Erforderlich. Ereignisstatus. False zeigt an, dass das Steuerelement das Ereignis verarbeiten soll (Voreinstellung). True zeigt an, dass die Anwendung das Ereignis verarbeitet und der Fokus auf dem aktuellen Steuerelement verbleibt.
Hinweise
Die Ereignisse Enter und Exit sind vergleichbar mit den Ereignissen GotFocus und LostFocus in Visual Basic. Anders als die Ereignisse GotFocus und LostFocus treten die Ereignisse Enter und Exit nicht ein, wenn ein Formular den Fokus erhält oder abgibt.
Angenommen, Sie wählen das Kontrollkästchen aus, das das Enter-Ereignis auslöst. Wenn Sie dann ein anderes Steuerelement im gleichen Formular auswählen, wird das Exit-Ereignis für das Kontrollkästchen ausgelöst (da der Fokus an ein anderes Objekt im gleichen Formular weitergegeben wird). Anschließend tritt das Enter-Ereignis für das zweite Steuerelement in dem Formular ein.
Da das Enter-Ereignis eintritt, bevor der Fokus an ein bestimmtes Steuerelement weitergegeben wird, können Sie eine Enter-Ereignisprozedur verwenden, um Anweisungen anzuzeigen. Sie könnten z.B. ein Makro oder eine Ereignisprozedur verwenden, um ein kleines Formular oder ein Meldungsfeld anzuzeigen, das die Art der Daten angibt, den das Steuerelement normalerweise enthält.
Anmerkung Um zu verhindern, dass das Steuerelement den Fokus abgibt, können Sie dem Cancel-Argument des Exit-Ereignisses den Wert True zuweisen.
Max
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige