Condiciones para textbox en un formulario vba

Hola! Dante 

Tengo un formulario en la que hay varios textbox y lo que busco con este tema es que cada textbox tenga condiciones al escribir un dato antes de guardar por ejemplo:

si el Textbox1 es > que 12.00  'el cuadro de texto se pondrá de color rojo.

si el Textbox1 es < que 12.00  'el cuadro de texto se pondrá de color verde.

si el Textbox1 = " "   'el cuadro de texto se pondrá de color blanco.

por ultimo si al pulsar guardar en mi formulario  el cuadro obtuvo un dato de 12.00 entonces que la celda en la que se almacenara obtenga el mismo color que el del cuadro; utilice este código pero no me realiza las condiciones del blanco y la de guardar. 

Private Sub TextBox1_Change()
TextBox1.MaxLength = 5
If Val(TextBox1) <= 12 Then
TextBox1.BackColor = &HFF00&
ElseIf Val(TextBox1) > 12 Then
TextBox1.BackColor = &HFF8&
End If
End Sub

1 respuesta

Respuesta
1

Pon lo siguiente en tu formulario, en el botón guardar.

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set celda = Range("C5")
    celda.Value = Val(TextBox1)
    If Val(TextBox1) <= 12 Then
        celda.Interior.ColorIndex = 4
    ElseIf Val(TextBox1) > 12 Then
        celda.Interior.ColorIndex = 3
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola! Dante 

Gracias por el dato, Te comento que el código del textbox1 en el botón guardar de mi formulario esta de esta manera.

Private Sub CommandButton8_Click()
If ComboBox1 = "" Or TextBox1 = "" Then
MsgBox "No son Datos suficientes para Guardar", vbInformation, ""
TextBox1.SetFocus
Else
ActiveSheet.Cells(6, 3).Select
Selection.EntireRow.Insert
ActiveSheet.Cells(6, 1) = Date
ActiveSheet.Cells(6, 2) = Format(Now, "hh:mm AM/PM")
ActiveSheet.Cells(6, 5) = ComboBox1
ActiveSheet.Cells(6, 3) = ComboBox2
ActiveSheet.Cells(6, 4) = ComboBox3
ActiveSheet.Cells(6, 28) = TextBox1
ActiveSheet.Cells(6, 29) = TextBox2
ActiveSheet.Cells(6, 18) = TextBox3
ActiveSheet.Cells(6, 38) = TextBox4
ActiveSheet.Cells(6, 50) = TextBox5
ActiveSheet.Cells(6, 51) = TextBox6
ActiveSheet.Cells(6, 20) = TextBox8
ActiveSheet.Cells(6, 21) = TextBox9
ActiveSheet.Cells(6, 16) = TextBox10
ActiveSheet.Cells(6, 39) = TextBox11
ActiveSheet.Cells(6, 44) = TextBox12
ActiveSheet.Cells(6, 45) = TextBox13
ActiveSheet.Cells(6, 14) = TextBox14
ActiveSheet.Cells(6, 22) = TextBox15
ActiveSheet.Cells(6, 23) = TextBox16
ActiveSheet.Cells(6, 24) = TextBox17
ActiveSheet.Cells(6, 25) = TextBox18
ActiveSheet.Cells(6, 17) = TextBox20
ActiveSheet.Cells(6, 48) = TextBox21
ActiveSheet.Cells(6, 49) = TextBox22
ActiveSheet.Cells(6, 34) = TextBox23
ActiveSheet.Cells(6, 35) = TextBox24
ActiveSheet.Cells(6, 19) = TextBox25
ActiveSheet.Cells(6, 40) = TextBox26
ActiveSheet.Cells(6, 46) = TextBox27
ActiveSheet.Cells(6, 47) = TextBox34
ActiveSheet.Cells(6, 15) = TextBox35
'Datos para Reservorio
ActiveSheet.Cells(6, 10) = TextBox36
ActiveSheet.Cells(6, 7) = TextBox37
ActiveSheet.Cells(6, 9) = TextBox38
ActiveSheet.Cells(6, 6) = TextBox39
ActiveSheet.Cells(6, 11) = TextBox40
ActiveSheet.Cells(6, 8) = TextBox41
ActiveSheet.Cells(6, 12) = TextBox42
ActiveSheet.Cells(6, 13) = TextBox43
ActiveSheet.Cells(6, 32) = TextBox44
ActiveSheet.Cells(6, 33) = TextBox45
ActiveSheet.Cells(6, 30) = TextBox46
ActiveSheet.Cells(6, 31) = TextBox47
ActiveSheet.Cells(6, 54) = TextBox51
ActiveSheet.Cells(6, 55) = TextBox52
ActiveSheet.Cells(6, 52) = TextBox61
ActiveSheet.Cells(6, 53) = TextBox62
ActiveSheet.Cells(6, 41) = TextBox48
ActiveSheet.Cells(6, 42) = TextBox49
MsgBox ("Se Guardaron correctamente los datos"), vbInformation
 ComboBox1 = ""
 ComboBox2 = ""
 ComboBox3 = ""
 TextBox1 = ""
 TextBox2 = ""
TextBox3 = ""
 TextBox4 = ""
 TextBox5 = ""
TextBox6 = ""
TextBox8 = ""
 TextBox9 = ""
 TextBox10 = ""
 TextBox11 = ""
 TextBox12 = ""
 TextBox13 = ""
 TextBox14 = ""
TextBox15 = ""
 TextBox16 = ""
 TextBox17 = ""
TextBox18 = ""
TextBox20 = ""
TextBox21 = ""
TextBox22 = ""
TextBox23 = ""
TextBox24 = ""
TextBox25 = ""
TextBox26 = ""
TextBox27 = ""
TextBox34 = ""
TextBox35 = ""
TextBox36 = ""
TextBox37 = ""
TextBox38 = ""
TextBox39 = ""
TextBox40 = ""
TextBox41 = ""
TextBox42 = ""
TextBox43 = ""
TextBox44 = ""
TextBox45 = ""
TextBox46 = ""
TextBox47 = ""
TextBox51 = ""
TextBox52 = ""
TextBox61 = ""
TextBox62 = ""
TextBox48 = ""
TextBox49 = ""
'Rem Textbox1.SetFocus Envía el cursor al Textbox1 para volver a capturar los datos
ComboBox1.SetFocus
End If
End Sub

Como lo adapto a este código.

Después de esta línea

ActiveSheet.Cells(6, 28) = TextBox1

Debería quedar así:

    ActiveSheet.Cells(6, 28) = TextBox1
    If Val(TextBox1) <= 12 Then
        ActiveSheet.Cells(6, 28).Interior.ColorIndex = 4
    ElseIf Val(TextBox1) > 12 Then
        ActiveSheet.Cells(6, 28).Interior.ColorIndex = 3
    End If

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas