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

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

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
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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige