VBA UserForm: Dateneingabe mit ComboBox und Validierung

Informatik7,78 KB

UserForm-Programmierung in VBA

Hier im Fall der Aktivierung wird nur für UserForm1 verwendet.


Füllen der Elemente, die in der ComboBox1 erscheinen

Private Sub UserForm_Activate()
    ComboBox1.AddItem "Rancaguita"
    ComboBox1.AddItem "Santiaguitito"
    ComboBox1.AddItem "Viñitita"
    ComboBox1.AddItem "Concepcioncito"
    ComboBox1.AddItem "Chaitencitito"
    ComboBox1.AddItem "La Serena"
    ComboBox1.Text = "Wählen Sie eine Option"
End Sub

Cursorsteuerung nach Auswahl in der ComboBox

Dieses Programm wird verwendet, um den Cursor zum nächsten Steuerelement zu bewegen, wenn der Benutzer ein Element der ComboBox auswählt.

Private Sub ComboBox1_Click()
    ComboBox1.Enabled = False       'Deaktiviert dieselbe ComboBox
    TextBox4.Enabled = True         'Aktiviert TextBox4 (Alter)
    TextBox4.SetFocus               'Setzt den Cursor auf Alter
End Sub

Programmierung des Namens

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If Not IsNumeric(TextBox1.Text) And (TextBox1.Text) <> "" Then
            Dim HH As String
            HH = MsgBox("OK, weiter zum nächsten Steuerelement", vbInformation, "OK")
            TextBox1.Enabled = False    'Deaktiviert dieselbe TextBox
            TextBox2.Enabled = True     'Aktiviert TextBox2 (Adresse)
            TextBox2.SetFocus           'Setzt den Cursor auf Adresse
        Else
            Dim RH As String
            RH = MsgBox("Fehler, bitte nur Buchstaben eingeben", vbCritical, "Warnung")
            TextBox1.Text = ""          'Löscht die fehlerhafte Eingabe
            TextBox1.SetFocus           'Setzt den Cursor zurück auf Name
        End If
    End If
End Sub

Programmierung der Adresse

Private Sub TextBox2_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If Not IsNumeric(TextBox2.Text) Then
            Dim HH As String
            HH = MsgBox("OK, weiter zum nächsten Steuerelement", vbInformation, "OK")
            TextBox2.Enabled = False    'Deaktiviert dieselbe TextBox
            TextBox3.Enabled = True     'Aktiviert TextBox3 (Telefon)
            TextBox3.SetFocus           'Setzt den Cursor auf Telefon
        Else
            Dim RH As String
            RH = MsgBox("Fehler, bitte nur Buchstaben eingeben", vbCritical, "Warnung")
            TextBox2.Text = ""          'Löscht die fehlerhafte Eingabe
            TextBox2.SetFocus           'Setzt den Cursor zurück auf Adresse
        End If
    End If
End Sub

Programmierung des Telefons

Private Sub TextBox3_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If IsNumeric(TextBox3.Text) Then
            Dim HH As String
            HH = MsgBox("OK, weiter zum nächsten Steuerelement", vbInformation, "OK")
            TextBox3.Enabled = False    'Deaktiviert dieselbe TextBox
            ComboBox1.Enabled = True    'Aktiviert ComboBox1 (Stadt)
            ComboBox1.SetFocus          'Setzt den Cursor auf Stadt
        Else
            Dim RH As String
            RH = MsgBox("Fehler, bitte nur Zahlen eingeben", vbCritical, "Warnung")
            TextBox3.Text = ""          'Löscht die fehlerhafte Eingabe
            TextBox3.SetFocus           'Setzt den Cursor zurück auf Telefon
        End If
    End If
End Sub

Programmierung des Alters

Private Sub TextBox4_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then
        If IsNumeric(TextBox4.Text) Then
            Dim HH As String
            HH = MsgBox("OK, weiter mit der Aufnahme", vbInformation, "OK")
            TextBox4.Enabled = False    'Deaktiviert dieselbe TextBox
            CommandButton1.Enabled = True 'Aktiviert die Schaltfläche Aufnahme
            CommandButton1.SetFocus     'Setzt den Cursor auf die Schaltfläche Aufnahme
        Else
            Dim RH As String
            RH = MsgBox("FEHLER, bitte nur Zahlen eingeben", vbCritical, "Warnung")
            TextBox4.Text = ""          'Löscht die fehlerhafte Eingabe
            TextBox4.SetFocus           'Setzt den Cursor zurück auf Alter
        End If
    End If
End Sub

Programmierung der Aufnahme-Taste

Private Sub CommandButton1_Click()
    'Programmierung der Design-Vorlage (Kopfzeile)
    Range("B4").Value = "Name"
    Range("C4").Value = "Adresse"
    Range("D4").Value = "Telefon"
    Range("E4").Value = "Stadt"
    Range("F4").Value = "Alter"
    Range("B4:F20").Borders.Value = 9      'Doppelten Rahmen um B4:F20 setzen
    Range("B4:F20").Font.Bold = True       'B4:F20 fett formatieren
    Range("B4:F4").Font.Size = 12          'Schriftgröße 12 für den Titel
    Range("B4:F4").Interior.Color = vbBlue 'Blauer Hintergrund für den Titel
    Range("B4:F4").Font.Color = vbWhite    'Weiße Schrift für den Titel
    Range("B4").ColumnWidth = 18           'Spaltenbreite B (Name)
    Range("C4").ColumnWidth = 18           'Spaltenbreite C (Adresse)
    Range("D4").ColumnWidth = 7            'Spaltenbreite D (Telefon)
    Range("E4").ColumnWidth = 15           'Spaltenbreite E (Stadt)
    Range("F4").ColumnWidth = 7            'Spaltenbreite F (Alter)
    Range("B5:F5").Font.Size = 10          'Schriftgröße 10 für den Inhalt
    Range("B5:F20").Font.Color = vbRed     'Rote Schrift für den Inhalt
    Range("B5:F20").Interior.Color = vbYellow 'Gelber Hintergrund für den Inhalt

    'Hier werden die Daten aufgezeichnet
    Range("B5").Select                      'Zelle B5 auswählen
    Selection.EntireRow.Insert              'Fügt eine Zeile ein
    Sheets("Sheet1").Range("B5").Value = TextBox1   'Name in B5 speichern
    Sheets("Sheet1").Range("C12").Value = TextBox2  'Adresse in C12 speichern
    Sheets("Sheet1").Range("D12").Value = TextBox3  'Telefon in D12 speichern
    Sheets("Sheet1").Range("E12").Value = TextBox4  'Alter in E12 speichern
    Sheets("Sheet1").Range("F12").Value = ComboBox1 'Stadt in F12 speichern

    Dim RR As String
    RR = MsgBox("Daten aufgezeichnet", vbInformation, "Speichern")
    CommandButton1.Enabled = False          'Deaktiviert die Schaltfläche Aufnahme
    CommandButton2.Enabled = True           'Aktiviert die Schaltfläche Sonstige Erlöse
    CommandButton3.Enabled = True           'Aktiviert die Schaltfläche Beenden
    CommandButton2.SetFocus                 'Setzt den Cursor auf Sonstige Erlöse
End Sub

Button-Programmierung Sonstige Erlöse

Private Sub CommandButton2_Click()
    TextBox1.Text = ""                      'Löscht TextBox1 (Name)
    TextBox2.Text = ""                      'Löscht TextBox2 (Adresse)
    TextBox3.Text = ""                      'Löscht TextBox3 (Telefon)
    TextBox4.Text = ""                      'Löscht TextBox4 (Alter)
    ComboBox1.Text = ""                     'Löscht ComboBox1 (Stadt)
    CommandButton2.Enabled = False          'Deaktiviert die Schaltfläche
    TextBox1.Enabled = True                 'Aktiviert TextBox1 (Name)
    TextBox1.SetFocus                       'Setzt den Cursor auf TextBox1 (Name)
End Sub

Programmierung der Exit-Taste

Private Sub CommandButton3_Click()
    Dim AA As String
    Dim HH As VbMsgBoxResult
    AA = "John Doe"
    HH = MsgBox("Diese Anwendung beenden?", vbYesNo + vbQuestion, "Kleine Frage")
    If HH = vbYes Then
        Dim AB As String
        AB = MsgBox("OK, Chait, der Autor ist: " & AA, vbInformation, "Auf Wiedersehen")
    Else
        Dim AX As String
        AX = MsgBox("Zurück zum Programm", vbExclamation, "Zurück")
    End If
End Sub

Herunterladen

PDF Word HTML