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

Set Focus

Set Focus
31.08.2003 13:21:34
Walter
Hallo Zusammen,
habe meine VB geändert und folgendes Problem:
Mein Makro:

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'

Private Sub TextBox3_Change()
If IsNumeric(TextBox3) = False Then
MsgBox "Es ist nur Zahlen  Text erlaubt."
TextBox3 = "0.000,00"
TextBox3.SetFocus
With TextBox4                       'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox3 = "0.000,00"
On Error Resume Next
TextBox3.SetFocus
With TextBox3
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
'Cancel = True             'True=CommandButton) ist die Schaltfläche Abbrechen
End If                     'False=Schaltfläche nicht Abbrechen (Voreinstellung)
'Else
Worksheets("Datenbank").Range("A12") = CDbl(TextBox3)
TextBox3 = Format(Worksheets("Datenbank").Range("A12").Value, ("###,##0.00"))
'so holt von Tabelle rein, auch Format mit TAB-Taste direkt rein !
'End If
End Sub


Wenn ich den Text: '

Private Sub TextBox3_Change() wird der Focus RICHTIG in die
Textbox 3 gesetzt.
Wenn ich den Text:   

Private Sub TextBox3_Exit(ByVal Cancel As.ReturnBoolean)
leider in die nächste Box.
Wieso ???
Ich möchte nach der Eingabe, wenn Text eingeben wird nach der Fehlermeldung den
Focus wieder auf Textbox3 setzen.
Kann mir jemand helfen ???
Gruss Walter

                    

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Set Focus
31.08.2003 13:26:51
Hajo_Zi
Hallo Halter

schaue mal hier

Beispieldatei

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

Zurzeit gibt es wieder Probleme mit der E-Mail Benachrichtigung.

Ich bekomme Mails zu Beiträgen an denen ich nicht beteiligt bin und zusätzlich noch Mails zu meinen eigenen Beiträgen.
Das Problem mit den eigenen Benachrichtigung kann gelöst werden durch Lösche und Neuanmelden. Dieses möchte ich aber nicht jeden Tag machen.
Um dieses Problem erstmal zu beseitigen habe ich die automatische Mailbenachrichtigung abgeschaltet.
Aus diesem Grunde ist es dem Zufall überlassen ob auf Rückfragen Antworten von mir kommen.
Anzeige
AW: Set Focus
31.08.2003 16:27:25
Walter
Hallo Hajo,
habe das Makro so abgeändert und es funktioniert !!!

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Sub TextBox3_Change()
If IsNumeric(TextBox3) = False Then
MsgBox "Es sind nur Zahlen erlaubt !!!"
TextBox3 = "00,00"
Cancel = True
TextBox3.SetFocus
With TextBox3                               'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
Else
Worksheets("Datenbank").Range("A12") = CDbl(TextBox3)
TextBox3 = Format(Worksheets("Datenbank").Range("A12").Value, ("###,##0.00"))
'so holt von Tabelle rein, auch Format mit TAB-Taste direkt rein !
End If
End Sub

PRIMA
Ich habe leider noch eine Frage:
Wenn ich die Anfangszeile: 'Sub TextBox3_Change()
reinsetzte um direkt den Wert in die Tabelle zu
schreiben, erhalte ich eine Fehlermeldung !
Varible nicht definiert !
Was muß ich machen.
Wenn es möglich erkläre mir, wenn ich CANCEL=True einsetze funktioniert es, WARUM ?
Wieso bleibt dann der Fous in der Textbox?
Da ich kein Experte bin aber einige Makros schreibe würde ich mich über eine Antwort sehr
freuer.
Gruss Walter
Anzeige
AW: Set Focus
31.08.2003 16:39:58
Hajo_Zi
Hallo Walter

die Eigenschaft Chacel wird nicht übergeben.


Private Sub TextBox3_Change()
If TextBox3.Tag = "1" Then Exit Sub
If IsNumeric(TextBox3) = False Then
TextBox3.Tag = 1
MsgBox "Es sind nur Zahlen erlaubt !!!"
TextBox3 = "00,00"
'Cancel = True
TextBox3.SetFocus
With TextBox3                               'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox3.Tag = 0
Else
Worksheets("Datenbank").Range("A12") = CDbl(TextBox3)
TextBox3 = Format(Worksheets("Datenbank").Range("A12").Value, ("###,##0.00"))
'so holt von Tabelle rein, auch Format mit TAB-Taste direkt rein !
End If
End Sub


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Set Focus Leider noch einmal ...
31.08.2003 17:02:47
Walter
Hallo Hajo,
habe dein Makro reinkopiert:

Private Sub TextBox5_Change()
If TextBox5.Tag = "1" Then Exit Sub
If IsNumeric(TextBox5) = False Then
TextBox5.Tag = 1
MsgBox "Es sind nur Zahlen erlaubt !!!"
TextBox5 = "0.000,00"
'Cancel = True
TextBox5.SetFocus
With TextBox5                       'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox5.Tag = 0
Else
Worksheets("Datenbank").Range("A20") = CDbl(TextBox5)
TextBox5 = Format(Worksheets("Datenbank").Range("A20").Value, ("###,##0.00"))
End If
End Sub

nur auf die Textbox5 geändert, wenn ich Text eingebe ist alles ok mit der Fehlermeldung u
und Focus wird auch gesetzt.
Gebe ich ein Zahl ein z.B 44,00 dann springt der Courser nach der Eingabe der 1. 4 direkt hinter die Einer Zahl also so 4,00< dahin.
Wieso oder solch ich das lassen ???
Gruss Walter
Anzeige
AW: Set Focus Leider noch einmal ...
31.08.2003 17:08:11
Hajo_Zi
Hallo Walter

ich hatte auch nur den Fehler simuliert

Option Explicit


Private Sub TextBox3_AfterUpdate()
TextBox3 = Format(TextBox3, ("###,##0.00"))
End Sub


'

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)

Private Sub TextBox3_Change()
If TextBox3.Tag = "1" Then Exit Sub
If IsNumeric(TextBox3) = False Then
TextBox3.Tag = 1
MsgBox "Es sind nur Zahlen erlaubt !!!"
TextBox3 = "00,00"
'Cancel = True
TextBox3.SetFocus
With TextBox3                               'hier so einfach gesetzt und Set Focus i.o.
.SetFocus
.SelStart = 0
.SelLength = Len(.Text)
End With
TextBox3.Tag = 0
Else
Worksheets("Datenbank").Range("A12") = CDbl(TextBox3)
'so holt von Tabelle rein, auch Format mit TAB-Taste direkt rein !
End If
End Sub


Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Set Focus Leider nicht bei Excel 2000
31.08.2003 18:20:46
Walter
Hallo Hajo,
bei Excel 97 Funktioniert ALLES !!!
Leider ist bei Excel 2000 der Set Focus nicht da ???
Die Textbox ist also nicht makiert und ich kann auch nichts eingeben.
Sonst ist bei der Eingabe alles i.o.
Wieso dies bei Excel 2000 ???

Irgenwie zum Verzeifeln oder ???
Gruss Walter
AW: Set Focus Leider nicht bei Excel 2000
31.08.2003 18:47:08
Hajo_Zi
Hallo Walter

da habe ich leider auch keine Ansatz mehr. Ich habe es in XP getestet, ohne Probleme und es gibt eigentlich nicht so viele Unterschiede zwischen 2000 und XP.

Unter 2000 kann ich nicht Testen da nicht installiert.

Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.
Anzeige
AW: Set Focus Leider nicht bei Excel 2000
31.08.2003 20:13:15
Walter
Hallo Hajo,
ich möchte mich denoch bedanken.
Gruss Walter
AW: Danke für Rückmeldung oT
31.08.2003 20:42:50
Hajo_Zi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige