Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wieso Anzeige Flasch ?

Forumthread: Wieso Anzeige Flasch ?

Wieso Anzeige Flasch ?
25.07.2004 20:31:06
Walter
Hallo Fachfrauen und Männer,
habe ein kleine Problem.
Wenn ich das Makro hiermit aktiviere:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
läuft alles.
Hiermit:          

Private Sub TextBox1_Change()
werden die 0000 angezeigt, wenn ich jedoch eine Personalzahl eingebe, geht der Courser direkt an die 4. Stelle und ich gebe 2 Zahlen ein, kommt natürlich meine
Warnung.
Ich möchte jedoch direkt bei der Eingabe das die Werte in die Tabelle
reingeschrieben werden
und nicht beim verlassen der Textbox1 .
Hier mein gesamtes Makro:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'nach verlassen Anzeige
'

Private Sub TextBox1_Change()                        'so schreibt direkt rein
Dim EingabeText As String
If Len(TextBox1) >= 5 Then
Beep
MsgBox "        Achtung " & Chr(13) & Chr(13) & _
"Verkäufer Nr. ist 4 stellig," & Chr(13) & Chr(13) & _
"bitte NEU eingeben !!!" & Chr(13), vbCritical
TextBox1 = "0000"
TextBox1.SetFocus
With TextBox1
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
Worksheets("Prov-Blatt").Range("I2") = CDbl(TextBox1)
TextBox1 = Format(Worksheets("Prov-Blatt").Range("I2").Value, ("0000"))
'so holt von Tabelle rein, auch Format mit TAB-Taste direkt rein !
Label1.Caption = Worksheets("Prov-Blatt").Range("I4")
End If
End Sub

Vielleicht hat jemand einen Tip, wie das Regeln kann.
Gruß Walter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Wieso Anzeige Flasch ?
Ulf
Es muss klar sein, dass das Change- Ereignis bei jeder Veränderung ausgelöst wird. Das bedeutet, dass bei deinem Code sofort der Else- Zweig durchlaufen wird.
Ulf
Ja, kann man das ändern?
25.07.2004 21:33:20
Walter
Hallo Ulf,
danke für die Info, kann ich das den irgendwie verändern ?
Gruß Walter
AW: Ja, kann man das ändern?
Ulf
Entweder ein anderes Ereignis verwenden oder die Ausführung von einer Bedingung
abhängig machen, z.B. if len(textbox1)&gt 4 then....
Ulf
Anzeige
Habe ich schon
25.07.2004 23:54:55
Walter
Hallo Ulf,
hatte die Bedingung vorher schon auf 4 gesezt, leider ohne Erfolg.
Sobald ich die 5 Ziffer eingebe bricht ab.
Gruß Walter
AW: Habe ich schon
26.07.2004 00:13:27
Björn
Hallo Walter,
bei der Eingabe in die Textbox wird das Change-Ereignis ausgelöst, sobald du die erste Ziffer eingegeben hast. Daraufhin wird dein Makro abgearbeitet und der Else-Teil kommt zur Ausführung. Mit der Anweisung
TextBox1 = Format(Worksheets("Prov-Blatt").Range("I2").Value, ("0000"))
füllst Du dort dann die Textbox auf 4 Stellen auf (drei führende Nullen und deine erste Ziffer). Wenn du nun eine weitere Ziffer eingibst, wird diese an die fünfte Stelle gesetzt. Dann wird wieder das Change-Ereignis ausgelöst und diesmal kommt der If-Then-Teil zur Ausführung, der mit der Anweisung
TextBox1 = "0000"
wieder vier Nullen in die Textbox schreibt, woraufhin jede Eingabe wieder in den If-Then-Teil verzweigt, da stets die fünfte Stelle angesprochen wird.
Abhilfe schafft zum einen
TextBox1 = Worksheets("Prov-Blatt").Range("I2").Value
und zum anderen
TextBox1=""
Gruß
Björn
Anzeige
Danke für die Erklärung
26.07.2004 10:13:10
walter
Guten Morgen Björn,
danke für die Erklärung.
Habe:
TextBox1 = Worksheets("Prov-Blatt").Range("I2").Value
eingesetzt,so funktioniert auch die Abfrage mit der 5.Stelle dann MsgBox.
Zeigt zwar nur eine "0" an nach Datenfreigabe ist aber egal.
Gruß Walter
Danke für die Rückmeldung - o. T.
26.07.2004 22:03:36
Björn
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige