I created a macro that detects if the user has entered invalid characters or if the "Textboxes" are empty, but the program is returning the wrong value, can someone help me?
Code:
It should return the value "7"
Code:
VBA Code:
Select Case True
Case Trim(tb_morada) = "" And Trim(tb_cod_postal) = "" Or (Not IsNumeric(Len(tb_cod_postal) = 1) Or Not IsNumeric(Len(tb_cod_postal) = 2) Or Not IsNumeric(Len(tb_cod_postal) = 3) Or Not IsNumeric(Len(tb_cod_postal) = 4) Or Not IsNumeric(Len(tb_cod_postal) = 6) Or Not IsNumeric(Len(tb_cod_postal) = 7) Or Not IsNumeric(Len(tb_cod_postal) = 8)) And Trim(data_nasc) = "" Or Not IsNumeric(tb_data_nasc) And cb_sexo.ListIndex = -1
If Trim(tb_cod_postal) = "" Then
lb_erro_cod_postal.Visible = True
ElseIf Not IsNumeric(Len(tb_cod_postal) = 1) Or Not IsNumeric(Len(tb_cod_postal) = 2) Or Not IsNumeric(Len(tb_cod_postal) = 3) Or Not IsNumeric(Len(tb_cod_postal) = 4) Or Not IsNumeric(Len(tb_cod_postal) = 6) Or Not IsNumeric(Len(tb_cod_postal) = 7) Or Not IsNumeric(Len(tb_cod_postal) = 8) Then
lb_erro_cod_postal.Visible = True
lb_erro_cod_postal.Caption = "*Caracteres Inválidos"
End If
If Trim(tb_data_nasc) = "" Then
lb_erro_data_nasc.Visible = True
ElseIf Not IsNumeric(tb_data_nasc) Then
lb_erro_data_nasc.Visible = True
lb_erro_data_nasc.Caption = "*Caracteres Inválidos"
End If
lb_erro_morada.Visible = True
lb_erro_sexo.Visible = True
MsgBox "1"
It should return the value "7"
Code:
Case Trim(cod_postal) = "" Or (Not IsNumeric(Len(tb_cod_postal) = 1) Or Not IsNumeric(Len(tb_cod_postal) = 2) Or Not IsNumeric(Len(tb_cod_postal) = 3) Or Not IsNumeric(Len(tb_cod_postal) = 4) Or Not IsNumeric(Len(tb_cod_postal) = 6) Or Not IsNumeric(Len(tb_cod_postal) = 7) Or Not IsNumeric(Len(tb_cod_postal) = 8)) And Trim(data_nasc) = "" Or Not IsNumeric(data_nasc) And cb_sexo.ListIndex = -1
If Trim(cod_postal) = "" Then
lb_erro_cod_postal.Visible = True
ElseIf Not IsNumeric(Len(tb_cod_postal) = 1) Or Not IsNumeric(Len(tb_cod_postal) = 2) Or Not IsNumeric(Len(tb_cod_postal) = 3) Or Not IsNumeric(Len(tb_cod_postal) = 4) Or Not IsNumeric(Len(tb_cod_postal) = 6) Or Not IsNumeric(Len(tb_cod_postal) = 7) Or Not IsNumeric(Len(tb_cod_postal) = 8) Then
lb_erro_cod_postal.Visible = True
lb_erro_cod_postal.Caption = "*Caracteres Inválidos"
End If
If Not IsNumeric(data_nasc) Then
lb_erro_data_nasc.Visible = True
lb_erro_data_nasc.Caption = "*Caracteres Inválidos"
ElseIf Trim(data_nasc) = "" Then
lb_erro_data_nasc.Visible = True
End If
lb_erro_sexo.Visible = True
MsgBox "7"