Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

Set Focus

    Betrifft: Set Focus von: Walter
    Geschrieben am: 31.08.2003 13:21:34

    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
    
    
    
      


    Betrifft: AW: Set Focus von: Hajo_Zi
    Geschrieben am: 31.08.2003 13:26:51

    Hallo Halter

    schaue mal hier

    Beispieldatei

    Grußformel

    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.


      


    Betrifft: AW: Set Focus von: Walter
    Geschrieben am: 31.08.2003 16:27:25

    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


      


    Betrifft: AW: Set Focus von: Hajo_Zi
    Geschrieben am: 31.08.2003 16:39:58

    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
    


    Grußformel

    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.


      


    Betrifft: AW: Set Focus Leider noch einmal ... von: Walter
    Geschrieben am: 31.08.2003 17:02:47

    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


      


    Betrifft: AW: Set Focus Leider noch einmal ... von: Hajo_Zi
    Geschrieben am: 31.08.2003 17:08:11

    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
    


    Grußformel

    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.


      


    Betrifft: AW: Set Focus Leider nicht bei Excel 2000 von: Walter
    Geschrieben am: 31.08.2003 18:20:46

    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


      


    Betrifft: AW: Set Focus Leider nicht bei Excel 2000 von: Hajo_Zi
    Geschrieben am: 31.08.2003 18:47:08

    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.

    Grußformel

    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.


      


    Betrifft: AW: Set Focus Leider nicht bei Excel 2000 von: Walter
    Geschrieben am: 31.08.2003 20:13:15

    Hallo Hajo,
    ich möchte mich denoch bedanken.
    Gruss Walter


      


    Betrifft: AW: Danke für Rückmeldung oT von: Hajo_Zi
    Geschrieben am: 31.08.2003 20:42:50