You are on page 1of 9

Option Explicit

Function ValidateForm() As Boolean

txtName.BackColor = vbWhite

txtDate.BackColor = vbWhite

cmb1.BackColor = vbWhite

cmb2.BackColor = vbWhite

cmb3.BackColor = vbWhite

cmb4.BackColor = vbWhite

cmb5.BackColor = vbWhite

cmb6.BackColor = vbWhite

cmb7.BackColor = vbWhite

cmb8.BackColor = vbWhite

txt1.BackColor = vbWhite

txt2.BackColor = vbWhite

txt3.BackColor = vbWhite

ValidateForm = True

If Trim(txtName.Value) = "" Then

MsgBox "Name can't be left blank.", vbOKOnly + vbInformation, "Name"

txtName.BackColor = vbRed

txtName.Activate
ValidateForm = False

ElseIf optBSN1A.Value = False And optBSN1B.Value = False And _

optBSN2A.Value = False And optBSN2B.Value = False Then

Msg.Box "Please select Year and Block.", vbOKOnly + vbInformation, "Year and Block"

ValidateForm = False

ElseIf cmb1.Text <> "4" And cmb1.Text <> "3" And _

cmb1.Text <> "2" And cmb1.Text <> "1" And _

cmb1.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb1"

cmb1.BackColor = vbRed

cmb1.Activate

ValidateForm = False

ElseIf cmb2.Text <> "4" And cmb2.Text <> "3" And _

cmb2.Text <> "2" And cmb2.Text <> "1" And _

cmb2.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb2"

cmb2.BackColor = vbRed

cmb2.Activate

ValidateForm = False

ElseIf cmb3.Text <> "4" And cmb3.Text <> "3" And _

cmb3.Text <> "2" And cmb3.Text <> "1" And _

cmb3.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb3"
cmb3.BackColor = vbRed

cmb3.Activate

ValidateForm = False

ElseIf cmb4.Text <> "4" And cmb4.Text <> "3" And _

cmb4.Text <> "2" And cmb4.Text <> "1" And _

cmb4.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb4"

cmb4.BackColor = vbRed

cmb4.Activate

ValidateForm = False

ElseIf cmb5.Text <> "4" And cmb5.Text <> "3" And _

cmb5.Text <> "2" And cmb5.Text <> "1" And _

cmb5.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb5"

cmb5.BackColor = vbRed

cmb5.Activate

ValidateForm = False

ElseIf cmb6.Text <> "4" And cmb6.Text <> "3" And _

cmb6.Text <> "2" And cmb6.Text <> "1" And _

cmb6.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb6"

cmb6.BackColor = vbRed

cmb6.Activate

ValidateForm = False

ElseIf cmb7.Text <> "4" And cmb7.Text <> "3" And _


cmb7.Text <> "2" And cmb7.Text <> "1" And _

cmb7.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb7"

cmb7.BackColor = vbRed

cmb7.Activate

ValidateForm = False

ElseIf cmb8.Text <> "4" And cmb8.Text <> "3" And _

cmb8.Text <> "2" And cmb8.Text <> "1" And _

cmb8.Text <> "0" Then

MsgBox "Please select the correct score from drop down.", vbOKOnly + vbInformation, "cmb8"

cmb8.BackColor = vbRed

cmb8.Activate

ValidateForm = False

If Trim(txt1.Value) = "" Then

MsgBox "txt1 can't be left blank.", vbOKOnly + vbInformation, "txt1"

txt1.BackColor = vbRed

txt1.Activate

ValidateForm = False

If Trim(txt2.Value) = "" Then

MsgBox "txt2 can't be left blank.", vbOKOnly + vbInformation, "txt2"

txt2.BackColor = vbRed

txt2.Activate

ValidateForm = False
If Trim(txt3.Value) = "" Then

MsgBox "txt3 can't be left blank.", vbOKOnly + vbInformation, "txt3"

txt3.BackColor = vbRed

txt3.Activate

ValidateForm = False

End Function

Function Reset()

Application.ScreenUpdating = False

txtName.Value = ""

txtName.BackColor = vbWhite

optBSN1A.Value = ""

optBSN1B.Value = ""

optBSN2A.Value = ""

optBSN2B.Value = ""

cmb1.Text = ""

cmb1.BackColor = vbWhite
cmb2.Text = ""

cmb2.BackColor = vbWhite

cmb3.Text = ""

cmb3.BackColor = vbWhite

cmb4.Text = ""

cmb4.BackColor = vbWhite

cmb5.Text = ""

cmb5.BackColor = vbWhite

cmb6.Text = ""

cmb6.BackColor = vbWhite

cmb7.Text = ""

cmb7.BackColor = vbWhite

cmb8.Text = ""

cmb8.BackColor = vbWhite

txt1.Value = ""

txt1.BackColor = vbWhite

txt2.Value = ""
txt2.BackColor = vbWhite

txt3.Value = ""

txt3.BackColor = vbWhite

Application.ScreenUpdating = True

End Function

Private Sub cmdReset_Click()

Dim i As Integer

i = MsgBox("Do you want to reset this form?", vbQuestion + YesNo + vbDefaultButton2, "Form Reset")

If i = vbYes Then

Call Reset

End If

End Sub
Private Sub cmdSave_Click()

Application.ScreenUpdating = False

Dim iRow As Long

iRow Sheets("Data").Range("A2000").End(xlUp).Row + 1

If ValidateForm = True Then

With ThisWorkbook.Sheets("Data")

.Range("A" & iRow).Value = iRow - 1

.Range("B" & iRow).Value = txtName.Value

.Range("C" & iRow).Value = IIf(optBSN1A.Value = True, "BSN1A", "BSN1B", "BSN2A", "BSN2B")

.Range("D" & iRow).Value = cmb1.Text

.Range("E" & iRow).Value = cmb2.Text

.Range("F" & iRow).Value = cmb3.Text

.Range("G" & iRow).Value = cmb4.Text

.Range("H" & iRow).Value = cmb5.Text

.Range("I" & iRow).Value = cmb6.Text

.Range("J" & iRow).Value = cmb7.Text

.Range("K" & iRow).Value = cmb8.Text

.Range("L" & iRow).Value = txt1.Value


.Range("M" & iRow).Value = txt2.Value

.Range("N" & iRow).Value = txt3.Value

End With

Call Reset

Else

Application.ScreenUpdating = True

Exit Sub

End If

Application.ScreenUpdating = True

End Sub

You might also like